Semafori so varni niti, kot je razloženo v dokumentu javadoc: Učinki skladnosti pomnilnika: dejanja v niti pred klicanjem metode "release", kot je sprostitev, ki se zgodi pred dejanji po uspešna metoda "pridobi", kot je pridobivanje v drugi niti. Večina operacij na objektih v java.
Ali semafori preprečujejo dirko?
Ne, operacije zaklepanja potekajo atomsko. Celotni zaklenjeni so ne bodo izvedeni atomsko. In ne pozabite, niti delijo skupen naslovni prostor in so vse vezane na proces.
Ali je uporaba niti varna?
A Objekt MessageService je dejansko nespremenljiv, saj se njegovo stanje po izdelavi ne more spremeniti. Zato je varen za niti. Poleg tega, če bi bil MessageService dejansko spremenljiv, vendar ima več niti dostop do njega samo za branje, je tudi varen niti.
Je nit varna in sinhronizirana?
Thread safe pomeni: metoda postane varna, da do nje dostopa več niti brez težav hkrati. sinhronizirana ključna beseda je eden od načinov za doseganje "varnosti niti". Vendar ne pozabite: medtem ko več niti poskuša dostopati do sinhronizirane metode, sledijo vrstnemu redu, tako da postane varen za dostop.
Ali so semafori pošteni?
Na splošno je treba semafore, ki se uporabljajo za nadzor dostopa do vira, inicializirati kot pošteno, da zagotovite, da nobena nit ne izgubi dostopa do vira. Pri uporabisemafori za druge vrste nadzora sinhronizacije, prednosti prepustnosti nepoštenega naročanja pogosto prevladajo nad pravičnostjo.