Ar semaforų siūlai yra saugūs?

Ar semaforų siūlai yra saugūs?
Ar semaforų siūlai yra saugūs?
Anonim

Semaforai yra saugūs, kaip paaiškinta javadoc: Atminties nuoseklumo efektai: veiksmai gijoje prieš iškviečiant "atleidimo" metodą, pvz., išleidimas įvyksta prieš veiksmus po sėkmingas „įsigyti“metodas, pvz., įgyti kitoje gijoje. Dauguma operacijų su java objektais.

Ar semaforai užkerta kelią lenktynėms?

Ne, užrakinimo operacijos vyksta atomiškai. Visi užrakinti nebus vykdomi atomiškai. Ir atminkite, kad gijos turi bendrą adresų erdvę ir visos yra susietos su procesu.

Ar saugu naudoti siūlą?

A MessageService objektas yra veiksmingai nekintantis, nes jo būsena negali pasikeisti sukūrus. Taigi jis yra saugus siūlams. Be to, jei „MessageService“iš tikrųjų būtų kintama, bet kelios gijos turi tik skaitymo prieigą, ji taip pat yra saugi.

Ar siūlai saugūs ir sinchronizuoti?

Saugios gijos priemonės: metodas tampa saugus, kad jį vienu metu gali pasiekti kelios gijos. sinchronizuotas raktinis žodis yra vienas iš būdų apsaugoti giją. Tačiau atminkite: iš tikrųjų, nors kelios gijos bando pasiekti sinchronizuotą metodą, jos laikosi tvarkos, todėl prieiga tampa saugi.

Ar semaforai teisingi?

Paprastai semaforai, naudojami prieigai prie išteklių valdyti, turėtų būti inicijuojami kaip sąžiningi, kad būtų užtikrinta, jog nė vienai gijai nepritrūktų prieigos prie š altinio. Naudojantkitų sinchronizavimo valdymo semaforų, nesąžiningo užsakymo pralaidumo pranašumai dažnai nusveria sąžiningumo sumetimus.

Rekomenduojamas: