Semafori sigurni su nitikao što je objašnjeno u javadocu: Efekti konzistentnosti memorije: Akcije u niti prije pozivanja metode "release", kao što je oslobađanje, dešavaju se prije akcije koje slijede uspješan "acquire" metod kao što je preuzimanje u drugoj niti. Većina operacija na objektima u java.
Da li semafori sprečavaju trku?
Ne, operacije zaključavanja se dešavaju atomski. Cijeli zaključani se neće izvršiti atomski. I zapamtite, niti dijele zajednički adresni prostor i sve su vezane za proces.
Je li korištenje nit bezbedno?
A MessageService objekt je efektivno nepromjenjiv jer se njegovo stanje ne može promijeniti nakon njegove konstrukcije. Dakle, siguran je na niti. Štaviše, ako je MessageService zapravo promjenjiv, ali više niti ima pristup samo za čitanje, on je također siguran za niti.
Je li nit siguran i sinhronizovan?
Thread safe znači: metoda postaje bezbedna da joj pristupi više niti bez ikakvih problema u isto vreme. sinhronizovana ključna reč je jedan od načina da se postigne 'thread safe'. Ali zapamtite: zapravo, dok više niti pokušava pristupiti sinhroniziranoj metodi, oni slijede redoslijed tako da postaje siguran za pristup.
Jesu li semafori pošteni?
Generalno, semafori koji se koriste za kontrolu pristupa resursima treba da budu inicijalizirani kao pošteni, kako bi se osiguralo da nijedna nit ne ostane bez pristupa pristupu resursu. Prilikom upotrebesemafori za druge vrste kontrole sinhronizacije, prednosti propusnosti nepoštenog naručivanja često nadmašuju razmatranja pravičnosti.