salve a tutti, ho fatto un programma con thread POSIX ma non so perchè anche usando il MUTEX credo mi vadi in deadlock, qualcuno ha riscontrato un errore?
codice:#include<iostream> #include<pthread.h> using namespace std; int valore1=100; pthread_mutex_t blocco; void*funzione(void*arg) { pthread_mutex_lock(&blocco); valore1=valore1-50; cout<<valore1; pthread_mutex_unlock(&blocco); } void*funzione2(void*arg) { pthread_mutex_lock(&blocco); valore1=valore1-50; cout<<valore1; pthread_mutex_unlock(&blocco); } int main(void) { pthread_t t1; pthread_t t2; pthread_mutex_init(&blocco,NULL); pthread_create(&t1,NULL,&funzione,NULL); pthread_create(&t2,NULL,&funzione2,NULL); pthread_join(t1,NULL); pthread_join(t2,NULL); return 0; } jonnykaraoke è offline Rispondi citando il messaggio o parte di esso

Rispondi quotando
