I semafori sono thread-safe come spiegato in javadoc: Effetti di consistenza della memoria: azioni in un thread prima di chiamare un metodo di "rilascio" come il rilascio delle azioni prima di un metodo di "acquisizione" riuscito come acquisire in un altro thread. La maggior parte delle operazioni sugli oggetti in java.
I semafori impediscono la razza?
No, le operazioni di blocco avvengono in modo atomico. L'intera area bloccata non verrà eseguita atomicamente. E ricorda, i thread condividono uno spazio di indirizzi comune e sono tutti legati a un processo.
Usare thread sicuro?
Un oggetto MessageService è effettivamente immutabile poiché il suo stato non può cambiare dopo la sua costruzione. Quindi, è thread-safe. Inoltre, se MessageService fosse effettivamente mutabile, ma più thread hanno accesso in sola lettura, è anche thread-safe.
Il thread è sicuro e sincronizzato?
Thread sicuro significa: il metodo diventa sicuro per essere accessibile da più thread senza alcun problema allo stesso tempo. parola chiave sincronizzata è uno dei modi per ottenere 'thread safe'. Ma ricorda: in re altà mentre più thread tentano di accedere al metodo sincronizzato, seguono l'ordine, quindi l'accesso diventa sicuro.
I semafori sono corretti?
In genere, semafori usati per controllare l'accesso alle risorse dovrebbero essere inizializzati come fair, per garantire che nessun thread sia affamato dall'accesso a una risorsa. Quando si usasemafori per altri tipi di controllo della sincronizzazione, i vantaggi di throughput dell'ordinamento non equo spesso superano le considerazioni di equità.