İşletim Sistemleri (Bahar-2016) Hafta-13
#include<iostream> #include<pthread.h> #include<unistd.h> using namespace std; void* asal(void* arg) { int* sayi = (int*) arg; int say = *sayi; int sayac=0; for(int i=2;i<=(say/2);i++) { if(say%i==0) { sayac++; break; } } if(sayac==0) cout<<say<<" sayisi asaldir"<<endl; sleep(1); } void* fib(void* arg) { int* sayi = (int*) arg; int say = *sayi; int sayi1=0; int sayi2=1; int sayi3=0; while(sayi3<say) { sayi3=sayi1+sayi2; sayi1=sayi2; sayi2=sayi3; if(sayi3==say) { cout<<say<<" fib. sayisidir!"<<endl; } } sleep(1); } int main() { int sayilar[]={5, 20, 11, 71, 91, 101, 13}; int boyut=sizeof(sayilar)/sizeof(int); pthread_t calisan1[boyut],calisan2[boyut]; cout<<"basladi"<<endl; int k =10; for(int i =0;i<boyut;i++) { pthread_create(&calisan1[i],NULL,asal, &sayilar[i]); // olustu ve basladi pthread_create(&calisan2[i],NULL,fib, &sayilar[i]); // olustu ve basladi } for(int i=0;i<boyut;i++) { pthread_join(calisan1[i],NULL); // ilgili thread bitisini bekle pthread_join(calisan2[i],NULL); // ilgili thread bitisini bekle } cout<<"bitti"<<endl; sleep(3); }