Пример #1
0
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;
    
}
Пример #2
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;
}
Пример #3
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;
}