Jsou semafory bezpečné?

Obsah:

Jsou semafory bezpečné?
Jsou semafory bezpečné?
Anonim

Semafory jsou bezpečné pro vlákna, jak je vysvětleno v javadoc: Efekty konzistence paměti: Akce ve vláknu před voláním metody „release“, jako jsou akce před vydáním po úspěšná metoda „získání“, jako je získání v jiném vláknu. Většina operací s objekty v jazyce Java.

Zabraňují semafory závodu?

Ne, operace uzamykání probíhají atomicky. Celé zamčené nebude provedeno atomicky. A pamatujte, vlákna sdílejí společný adresní prostor a všechna jsou vázána na proces.

Používáte bezpečné vlákno?

A Objekt MessageService je efektivně neměnný, protože jeho stav se po sestavení nemůže změnit. Je tedy bezpečný pro vlákna. Navíc, pokud by služba MessageService byla skutečně měnitelná, ale více vláken k ní má přístup pouze pro čtení, je to také bezpečné pro vlákna.

Je vlákno bezpečné a synchronizované?

Thread safe znamená: metoda se stává bezpečnou, aby k ní mohlo bez problémů přistupovat více vláken současně. synchronizované klíčové slovo je jedním ze způsobů, jak dosáhnout „bezpečného vlákna“. Ale pamatujte: Ve skutečnosti, když se několik vláken pokouší o přístup k synchronizované metodě, postupují podle pořadí, takže přístup je bezpečný.

Jsou semafory spravedlivé?

Obecně platí, že semafory používané k řízení přístupu ke zdrojům by měly být inicializovány jako spravedlivé, aby bylo zajištěno, že žádné vlákno nebude vyhladověno z přístupu ke zdroji. Při použitísemafory pro jiné druhy řízení synchronizace, výhody propustnosti nespravedlivého objednávání často převažují nad úvahami o spravedlnosti.

Doporučuje: