Spisu treści:
Definicja - Co oznacza synchronizacja wątków?
Synchronizacja wątków to jednoczesne wykonywanie dwóch lub więcej wątków, które współużytkują zasoby krytyczne. Wątki powinny być zsynchronizowane, aby uniknąć krytycznych konfliktów użycia zasobów. W przeciwnym razie mogą wystąpić konflikty, gdy wątki działające równolegle próbują jednocześnie zmodyfikować wspólną zmienną.
Techopedia wyjaśnia synchronizację wątków
Aby wyjaśnić synchronizację wątków, rozważ następujący przykład: trzy wątki - A, B i C - są wykonywane jednocześnie i muszą uzyskać dostęp do zasobu krytycznego, Z. Aby uniknąć konfliktów podczas uzyskiwania dostępu do Z, wątki A, B i C muszą być zsynchronizowane . Tak więc, gdy A uzyskuje dostęp do Z, a B również próbuje uzyskać dostęp do Z, dostępu B do Z należy unikać za pomocą środków bezpieczeństwa, dopóki A nie zakończy operacji i nie wyjdzie z Z.
W Javie stosuje się dwie strategie synchronizacji, aby zapobiec zakłóceniom wątków i błędom spójności pamięci:
- Metoda synchroniczna: zawiera zsynchronizowane słowo kluczowe w deklaracji. Gdy wątek wywołuje metodę zsynchronizowaną, metoda zsynchronizowana automatycznie uzyskuje wewnętrzną blokadę dla obiektu tej metody i zwalnia ją, gdy metoda zwraca, nawet jeśli powrót ten został spowodowany przez nieprzechwycony wyjątek.
- Instrukcja zsynchronizowana: deklaruje blok kodu do synchronizacji. W przeciwieństwie do metod zsynchronizowanych instrukcje zsynchronizowane powinny określać obiekty, które zapewniają wewnętrzną blokadę. Te instrukcje są przydatne do poprawy współbieżności z drobnoziarnistą synchronizacją, ponieważ umożliwiają uniknięcie niepotrzebnego blokowania.
