Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <pthread.h>
- #include <cstdlib>
- #include <iostream>
- #include <signal.h>
- #include <time.h>
- #include <atomic>
- using namespace std;
- int ZajednickaVarijabla[N];
- void izlaz(int sig)
- {
- cout<<"Prekid programa!"<<endl;
- return 0;
- }
- void *Pisac(void *x)
- {
- ZajednickaVarijabla = *((int*)x);
- int slucajni;
- slucajni=rand()%100+1;
- ZajednickaVarijabla[x]=slucajni;
- cout<<"Slucajni"<<x<<"."<<slucajni<<endl;
- }
- void *Citac(void *x)
- {
- int i;
- do {
- i = ZajednickaVarijabla;
- printf("Procitano %d\n", i);
- sleep(1);
- } while (i == 0);
- printf("Procitano je: %d\n", i);
- }
- int main(int argc, char **argv)//dodaj ulazne argumente!!!
- {
- sigset (SIGINT, izlaz); //exit program
- if(argc!=3)
- {
- cout<<"Greska! Previse parametara."<<endl;
- return 0;
- }
- int N=atoi(argv[1]);
- int M=atoi(argv[2]);
- pthread_t dretva[2];
- for(int i=0;i<M;i++)
- {
- for(int j=0;j<N;j++)
- {
- if (pthread_create(&thr_id[0], NULL, Citac, NULL) != 0)
- {
- printf("Greska pri stvaranju dretve!\n");
- exit(1);
- }
- }
- if (pthread_create(&thr_id[1], NULL, Pisac, &j ) != 0) {
- printf("Greska pri stvaranju dretve!\n");
- exit(1);
- }
- }
- //join dretvi da se zavrse za 1. od N slucaja
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement