Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Problema col MUTEX

    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

  2. #2
    A me funziona correttamente, stampa 50 e 0 (in realtà 500 perchè non hai messo l'endl alla fine delle varie stampe)
    Non ho firme, ma la ferma speranza che compaia una firma automatica ogni qualvolta ci sia bisogno di una firma, fermo restando che la speranza di una firma è l' ultima a morire

  3. #3
    apposto ho risolto...ho riavviato il pc e ora funziona....comunque come errore mi dava il che non visualizzava l'output e non si chiudeva nemmeno il programma perchè non mi faceva comparire la sessione
    nome@nomecomputer:$ quindi ho pensat fosse un deadlock

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.