Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.37 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <pthread.h>
  3. #include <cstdlib>
  4. #include <iostream>
  5. #include <signal.h>
  6. #include <time.h>  
  7. #include <atomic>
  8.  
  9. using namespace std;
  10.  
  11.  int ZajednickaVarijabla[N];
  12.  
  13. void izlaz(int sig)
  14. {
  15.     cout<<"Prekid programa!"<<endl;
  16.     return 0;
  17. }
  18.  
  19. void *Pisac(void *x)
  20. {
  21.    ZajednickaVarijabla = *((int*)x);
  22.    int slucajni;
  23.    slucajni=rand()%100+1;
  24.    ZajednickaVarijabla[x]=slucajni;
  25.    cout<<"Slucajni"<<x<<"."<<slucajni<<endl;
  26. }
  27.  
  28. void *Citac(void *x)
  29. {
  30.    int i;
  31.  
  32.    do {
  33.       i = ZajednickaVarijabla;
  34.       printf("Procitano %d\n", i);
  35.       sleep(1);
  36.    } while (i == 0);
  37.  
  38.    printf("Procitano je: %d\n", i);
  39. }
  40.  
  41.  
  42. int main(int argc, char **argv)//dodaj ulazne argumente!!!
  43.  
  44. {
  45.    
  46.      sigset (SIGINT, izlaz); //exit program
  47.      
  48.      if(argc!=3)
  49.     {
  50.       cout<<"Greska! Previse parametara."<<endl;
  51.       return 0;
  52.     }
  53.    int N=atoi(argv[1]);
  54.    int M=atoi(argv[2]);
  55.    
  56.    pthread_t dretva[2];
  57.    
  58.    for(int i=0;i<M;i++)
  59.    
  60.     {
  61.         for(int j=0;j<N;j++)
  62.         {
  63.              if (pthread_create(&thr_id[0], NULL, Citac, NULL) != 0)
  64.                 {
  65.                 printf("Greska pri stvaranju dretve!\n");
  66.                 exit(1);
  67.                 }
  68.         }
  69.          if (pthread_create(&thr_id[1], NULL, Pisac, &j ) != 0) {
  70.       printf("Greska pri stvaranju dretve!\n");
  71.       exit(1);
  72.    }
  73.  
  74.     }
  75.     //join dretvi da se zavrse za 1. od N slucaja
  76.        
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement