Úrovně vláknové bezpečnosti

Joshua Bloch navrhl následujících pět úrovní vláknové bezpečnosti, které bych v tomto zápisku rád shrnul. Razím myšlenku, že každá třída musí mít v komentáři (javadocu) poznámku o této úrovni.

  1. Immutable. Třída je neměnná, takže je také vláknově bezpečná.
  2. Thread-safe. Třída je vláknově bezpečná, je možné ji plně používat v konkurenčním prostředí a třída sama se postará o potřebnou synchronizaci.
  3. Conditionally thread-safe. Třída je vláknově bezpečná za jistých podmínek a tyto podmínky jsou přesně dány. Obvykle to znamená, že se třída musí nacházet v určitém stavu, aby byla bezpečná. Do tohoto stavu ji lze převést například voláním metody.
  4. Thread-compatible. Třída je vláknově kompatibilní, což znamená, že ačkoli není interně synchronizována, pokud volající zajistí zamykání pro volání všech metod, lze třídu považovat za bezpečnou. Typicky lze takovou třídu obalit wrapperem, který bude zajišťovat synchronizaci pro všechny metody.
  5. Thread-hostile. Třída není vláknově bezpečná a není možné ji použít v konkurenčním prostředí. Typicky jsou to třídy pracující s externími prostředky či statickými daty.

Diskuze

If you can't read the letters on the image, download this .wav file to get them read to you.
pridej.cz
blog/urovne_vlaknove_bezpecnosti.txt · Poslední úprava: 29.05.2008 09:04 (external edit)
Creative Commons License Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0