Obsah:
Definice - Co znamená synchronizace vlákna?
Synchronizace vláken je souběžné spuštění dvou nebo více vláken, které sdílejí kritické zdroje. Vlákna by měla být synchronizována, aby nedocházelo ke konfliktům při kritickém používání zdrojů. V opačném případě může dojít ke konfliktům, když se paralelně pracující podprocesy pokusí upravit společnou proměnnou současně.
Techopedia vysvětluje synchronizaci vláken
Pro objasnění synchronizace vláken zvažte následující příklad: tři vlákna - A, B a C - jsou prováděna souběžně a musí mít přístup ke kritickému prostředku, Z. Aby nedošlo ke konfliktům při přístupu k Z, musí být synchronizována vlákna A, B a C. . Tedy, když A přistupuje k Z a B se také pokouší získat přístup k Z, je třeba se vyhnout přístupu Z k B pomocí bezpečnostních opatření, dokud A nedokončí svou činnost a nevyjde z Z.
V Javě se používají dvě synchronizační strategie, aby se zabránilo rušení nití a chybám konzistence paměti:
- Synchronizovaná metoda: Zahrnuje synchronizované klíčové slovo do jeho deklarace. Když vlákno vyvolá synchronizovanou metodu, synchronizovaná metoda automaticky získá vnitřní zámek pro objekt této metody a uvolní ji, když se metoda vrátí, i když byl tento návrat způsoben neočekávanou výjimkou.
- Synchronizovaný příkaz: Vyhlásí blok kódu, který bude synchronizován. Na rozdíl od synchronizovaných metod by synchronizované příkazy měly specifikovat objekty, které poskytují vnitřní zámek. Tyto příkazy jsou užitečné pro zlepšení souběžnosti s jemnozrnnou synchronizací, protože umožňují vyhnout se zbytečnému blokování.
