5. Supporto POSIX alla Programmazione Concorrente intra processo - POSIX Thread

Argomenti: thread, POSIX thread, concorrenza, mutua esclusione, sincronizzazione, mutex, condition variable
Riferimenti: Capitolo 4 "Thread" e 5 "Sincronizzazione di Processi" del libro di testo.

Introduzione all'uso di POSIX Threads
5_Introduzione_All_Uso_di_POSIX_Thread.pdf (Dispense delle lezioni)

--- Esempi utili ---

Passaggio di parametri al pthread
banale_giusto.c Makefile modo corretto di passare parametri ai pthread
con_trucco.c Makefile trucco osceno ma corretto per passare parametri interi ai pthread
banale_errato.c banale_moltoerrato.c  Makefile due modi sbagliati di passare parametri ai pthread

Sincronizzazione [o no] con la fine di un pthread
joinable.c restituzione di risultato da un pthread
detached.c non restituzione di risultato da pthread
cancel.c eliminazione di un pthread
Makefile Makefile per i tre esempi joinable detached cancel

Mutua Esclusione di pthread in sezioni critiche con Mutexes (Binary Semaphores)
mutex.c esempio di protezione in mutua esclusione tra pthread
printerror.h un file di macro per stampare informazioni sugli errori
Makefile il Makefile per compilare l'esempio mutex

Sincronizzazione di pthread con Mutexes e Condition Variables
esempio NON EFFICENTE di Sincronizzazione (PROVOCA BUSY WAITING)
busywaiting_gallinauovavolpe.c  printerror.h  busywaiting_Makefile 
esempio CORRETTO di Sincronizzazione e Mutua Esclusione tra pthread
gallinauovavolpe.c  printerror.h  Makefile 

CondVarBroadcast.c esempio #1 di Sincronizzazione e Mutua Esclusione tra pthread
CondVarSignal.c esempio #2 di Sincronizzazione e Mutua Esclusione tra pthread
printerror.h un file di macro per stampare informazioni sugli errori
Makefile il Makefile per compilare i due esempi CondVar*