Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <pthread.h>
  4.  
  5. #define MAX_NUM 5
  6.  
  7. int sum = 0;
  8.  
  9. pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;
  10.  
  11. void * f(void * a) {
  12. int k = * (int * ) a;
  13.  
  14. srand(time(NULL));
  15.  
  16. while (sum < 1000) {
  17. int n = rand() % 10;
  18. pthread_mutex_lock( & mtx);
  19. if (sum < 1000) {
  20. sum += n;
  21. if (sum >= 1000) {
  22. printf("Thread-ul %d a realizat trecerea", k);
  23. }
  24. }
  25. pthread_mutex_unlock( & mtx);
  26. }
  27.  
  28. return NULL;
  29. }
  30.  
  31. int main(int argc, char * argv[]) {
  32. pthread_t t[MAX_NUM];
  33.  
  34. int index[MAX_NUM];
  35. for (int k = 0; k < MAX_NUM; k++) {
  36. index[k] = k;
  37. }
  38. int i;
  39. for (i = 0; i < MAX_NUM; i++) {
  40. pthread_create( & t[i], NULL, f, & index[i]);
  41. }
  42.  
  43. for (i = 0; i < MAX_NUM; i++) {
  44. pthread_join(t[i], NULL);
  45. }
  46.  
  47. return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement