semafori

thread

Un thread o thread di esecuzione, in informatica, è una suddivisione di un processo in due o più filoni o sottoprocessi, che vengono eseguiti concorrentemente

mutex

In informatica il termine mutex (contrazione dell'inglese mutual exclusion, mutua esclusione) indica un procedimento di sincronizzazione fra processi o thread concorrenti, con il quale si impedisce che più task paralleli accedano contemporaneamente ai dati in memoria o ad altre risorse soggette a race condition (o corsa critica).

si usa quindi per non far lavorare i thread sulla stessa risorsa, "bloccandola",

definizione

In informatica, un semaforo è un tipo di dato astratto (Abstract Data Type) gestito da un sistema operativo multitasking per sincronizzare l'accesso a risorse condivise tra task (cioè processi o thread)

c++

programma semafori

produttore

incrementa la variabile "conta" e la stampa

consumatore

legge la variabile conta e la stampa

risultato

attraverso il mutex ci assicuriamo che i due thread svolgano un'operazione per volta, in modo da avere stampato la variabile e la lettura attraverso due thread differenti che abbiamo SINCRONIZZATO

libreria thread

libreria mutex