Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.55 KB | None | 0 0
  1.  
  2. #define _REENTRANT
  3. #include <pthread.h>
  4. #include <thread.h>
  5. #include <math.h>
  6. #define NUM_THREADS 3
  7. void *sinus(void *_x);
  8. void *logarytm(void *_x);
  9. void *pierwiastek(void *_x);
  10. thread_t tid[NUM_THREADS];
  11. double wyniki[NUM_THREADS];
  12. int j = 0;
  13. int k = 0;
  14. double suma = 0;
  15. int main(int argc, char *argv[])
  16. {
  17.         int i = 0;
  18.         int val = atoi(argv[1]);
  19.         pthread_create(&tid[i++], NULL,sinus,&val);
  20.         pthread_create(&tid[i++], NULL,logarytm,&val);
  21.         pthread_create(&tid[i++], NULL,pierwiastek,&val);
  22.     for (i = 0; i < NUM_THREADS; i++)
  23.         pthread_join(tid[i], NULL);
  24.         for(i = 0; i < NUM_THREADS; i++)
  25.         {
  26.                 suma += wyniki[i];
  27.         }
  28.         printf("Suma wszystkich wynikow: %lf \n", suma);
  29.  
  30. }
  31. void* sinus(void *_x)
  32. {
  33.         unsigned int x = *((unsigned int *) _x);
  34.         double wartosc = sin(x);
  35.         printf("spi %d sekund \n",tid[k]);
  36.         sleep(tid[k++]);
  37.         printf("wynik operacji %lf \n",wartosc);
  38.         wyniki[j++] = wartosc;
  39. };
  40. void* logarytm(void *_x)
  41. {
  42.         unsigned int x = *((unsigned int *) _x);
  43.         double wartosc = log(x);
  44.         printf("spi %d sekund \n",tid[k]);
  45.         sleep(tid[k++]);
  46.         printf("wynik operacji %lf \n",wartosc);
  47.         wyniki[j++] = wartosc;
  48. };
  49. void* pierwiastek(void *_x)
  50. {
  51.         unsigned int x = *((unsigned int *) _x);
  52.         double wartosc = sqrt(x);
  53.         printf("spi %d sekund \n", tid[k]);
  54.         sleep(tid[k]);
  55.         printf("wynik operacji %lf \n",wartosc);
  56.         wyniki[j++] = wartosc;
  57. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement