You are on page 1of 1

#include <pthread.

h>
#include <stdio.h>
int sold=100000;
pthread_mutex_t lock;
void tataDaiBani(int indice){
int contor=0;
int ok=1;
while(ok)
{pthread_mutex_lock(&lock);
if(sold>0){
sold--;
pthread_mutex_unlock(&lock);
contor++;
}
else{
pthread_mutex_unlock(&lock);
ok=0;}
}
printf("Fiul %d a luat %d \n",indice + 1,contor);
}
main(){
printf("Numarul de fii risipitori: ");
int n,contor=0;
scanf("%d",&n);
pthread_t p[100];
int i;
for(i=0;i<n;i++)
pthread_create(&p[i],NULL,tataDaiBani,i);
while(1)
{pthread_mutex_lock(&lock);
if(sold>0)
{sold++;
pthread_mutex_unlock(&lock);
contor++;}
else{
pthread_mutex_unlock(&lock);
break;}
}
printf("Tatal a depus %d \n",contor);
for(i=0;i<n;i++)
pthread_join(p[i],NULL);
}

You might also like