int main(void) { int tid[3]; int val[3]; libuthread_init(); tid[0] = uthread_create(func1,&val[0]); tid[1] = uthread_create(func1,&val[1]); tid[2] = uthread_create(func1,&val[2]); //val contem o tid do thread com o qual deve ser sincronizado val[0]=tid[1]; val[1]=tid[2]; val[2]=tid[0]; //tidglobal contem o inverso do 'val', o tid do proc. que fez a sincronização tidglobal[tid[0]]=tid[2]; tidglobal[tid[1]]=tid[0]; tidglobal[tid[2]]=tid[1]; if (uthread_join(tid[0])==-1) handle_error("Erro de sincronização"); printf("main: exiting\n"); return 0; }
int main(){ printf("Start Main...\n"); libuthread_init(); int i = 0; int th1 = -1; for(i = 0; i < 135; i++){ th1 = uthread_create((void*)f2,0); printf("Valor da thread: %d\n",th1); } return 0; }
int main(void) { int arg=0, tid1, tid2; libuthread_init(); tid1 = uthread_create(func1,&arg); tid2 = uthread_create(func2,&arg); if (tid1==-1 ) handle_error("Erro ao criar thread"); uthread_join(tid1); uthread_join(tid2); printf("main: exiting\n"); return 0; }