Verwenden, wenn:
- Mehrere Tasks einen synchronen „Phasenwechsel“ durchführen müssen.
- Daten synchronisiert gelesen/verarbeitet werden sollen.
- Multicore-Tasks bei bestimmten Schritten gemeinsam fortschreiten sollen.
Nicht verwenden, wenn:
- Tasks unabhängig laufen können.
- harte Echtzeitanforderungen vorliegen – da Wartezeiten unvorhersehbar sind.
- ein einziger Fehler (z. B. ein hängender Task) die ganze Synchronisation blockieren kann.