Schema di generazione dei thread
![]() |
GestoreClienti (porta 50000)(attiva un esecutore in parallelo per ogni richiesta)
|
![]() |
Begin(attiva i gestori)
|
Le priorità (indicate dal numero tra parentesi) sono crescenti con il numero stesso.
Sincronizzazione e variabili globali
La sincronizzazione si ottiene attraverso la condivisione di alcune variabili globali. Una parte di esse realizzano la sincronizzazione (del tipo mutua esclusione nell'accesso a quella stessa variabile) attraverso la definizione di tutti i metodi esportati "synchronized".
Siccome la mutua esclusione è un tipo di sincronizzazione insufficiente per creare meccanismi particolari, è stato costruito un oggetto ad hoc (chiamato Sincro) che viene condiviso dall'insieme di thread che devono sincronizzarsi secondo regole più complesse della mutua esclusione, comei il protocollo di gestione del recovery e dell'anello.