Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.03 KB | None | 0 0
  1. #include <pthread.h>
  2. #include <stdio.h>
  3. #include "gemiddelde.h"
  4.  
  5. int gem1, gem2, gem3, gem4;
  6.  
  7. void *bereken1(void *a);
  8. void *bereken2(void *a);
  9. void *bereken3(void *a);
  10. void *bereken4(void *a);
  11.  
  12. int main()
  13. {
  14.     int gemiddelde = 0;
  15.    
  16.     pthread_t tid1, tid2, tid3, tid4; /* identifiers voor de verschillende threads */
  17.     pthread_attr_t attr1, attr2, attr3, attr4; /* vzl thread attributen */
  18.    
  19.     pthread_attr_init(&attr1); /* zet de default attributen */
  20.     pthread_attr_init(&attr2); /* zet de default attributen */
  21.     pthread_attr_init(&attr3); /* zet de default attributen */
  22.     pthread_attr_init(&attr4); /* zet de default attributen */
  23.    
  24.    
  25.     pthread_create(&tid1, &attr1, bereken1, a1); /* maak een thread */
  26.     pthread_create(&tid2, &attr2, bereken2, a2); /* maak een thread */
  27.     pthread_create(&tid3, &attr3, bereken3, a3); /* maak een thread */
  28.     pthread_create(&tid4, &attr4, bereken4, a4); /* maak een thread */
  29.    
  30.     pthread_join(tid1, NULL); /* laat de main thread wachten op de andere threads */
  31.     pthread_join(tid2, NULL); /* laat de main thread wachten op de andere threads */
  32.     pthread_join(tid3, NULL); /* laat de main thread wachten op de andere threads */
  33.     pthread_join(tid4, NULL); /* laat de main thread wachten op de andere threads */
  34.    
  35.     gemiddelde = (gem1 + gem2 + gem3 + gem4) / 4;
  36.    
  37.     printf("Gemiddelde is %d\n", gemiddelde);
  38. }
  39.  
  40. void *bereken1(void *param)
  41. {
  42.     int i;
  43.     int *a = (int*)param;
  44.     gem1 = 0;
  45.     for (i = 0; i < 100000; ++i)
  46.         gem1 += a[i];
  47.     gem1 = gem1 / 100000;
  48.     pthread_exit(0);
  49. }
  50.  
  51. void *bereken2(void *param)
  52. {
  53.     int i, som = 0;
  54.     int *a = (int*)param;
  55.     gem2 = 0;
  56.     for (i = 0; i < 100000; ++i)
  57.         som += a[i];
  58.     gem2 = som / 100000;
  59.     pthread_exit(0);
  60. }
  61.  
  62. void *bereken3(void *param)
  63. {
  64.     int i, som = 0;
  65.     int *a = (int*)param;
  66.     gem3 = 0;
  67.     for (i = 0; i < 100000; ++i)
  68.         som += a[i];
  69.     gem3 = som / 100000;
  70.     pthread_exit(0);
  71. }
  72.  
  73. void *bereken4(void *param)
  74. {
  75.     int i, som = 0;
  76.     int *a = (int*)param;
  77.     gem4 = 0;
  78.     for (i = 0; i < 100000; ++i)
  79.         som += a[i];
  80.     gem4 = som / 100000;
  81.     pthread_exit(0);
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement