Semaforid on lõime turvalised nagu on selgitatud javadocis: Mälu järjepidevuse efektid: toimingud lõimes enne "vabastamise" meetodi kutsumist, näiteks vabastamine toimub enne edukas "omandamise" meetod, näiteks omandamine teises lõimes. Enamik toiminguid Java objektidega.
Kas semaforid takistavad rassi?
Ei, lukustustoimingud toimuvad atomaarselt. Kogu lukustatud on ei teostata atomaarselt. Ja pidage meeles, et lõimedel on ühine aadressiruum ja kõik on seotud protsessiga.
Kas lõime kasutamine on ohutu?
A MessageService objekt on tegelikult muutumatu, kuna selle olek ei saa pärast ehitamist muutuda. Seetõttu on see niidikindel. Veelgi enam, kui MessageService oleks tegelikult muudetav, kuid mitmel lõimel on sellele ainult kirjutuskaitstud juurdepääs, on see ka lõime jaoks ohutu.
Kas lõime on turvaline ja sünkroonitud?
Lõime ohutu tähendab: meetod muutub turvaliseks, et sellele pääseda juurde mitme lõimega samaaegselt ilma probleemideta. sünkroonitud märksõna on üks viise lõime turvaliseks saavutamiseks. Kuid pidage meeles: kuigi mitu lõime proovib juurdepääsu sünkroonitud meetodile, järgivad nad järjekorda, nii et juurdepääs on ohutu.
Kas semaforid on õiglased?
Üldiselt tuleks ressursile juurdepääsu kontrollimiseks kasutatavad semaforid lähtestada õiglastena, et tagada, et ükski lõime ei jääks ressursile juurdepääsust ilma. Kasutamiselsemaforid muud tüüpi sünkroonimise juhtimiseks, kaaluvad ebaõiglase järjestuse läbilaskevõime eelised sageli üles õigluse kaalutlused.