15. Synchronizacja wątków (pojęcie monitora).

Synchronizacja konieczne jest, gdy dwa wątki wykorzystują wspólne zasoby np. zmienną. Przy dostępie do wspólnych danych nie może być mowy o jednoczesnym i dowolnym dostępie do zmiennej. Dostęp do zmiennej może mieć tylko jeden wątek. Java ma wbudowany mechanizm zapobiegający kolizjom polegającym na próbie korzystania przez różne wątki z tych samych pól obiektu jednocześnie. Każdy obiekt, który ma metody synchroniczne posiada swój monitor.

Synchronizacja na zasadzie monitora polega na tym, że w danym czasie może być wykonywany tylko jeden wątek. Aby dokonać synchronizacji i poddać wątek kontroli monitora należy posłużyć się słowem kluczowym synchronized. Gdy jeden wątek wykonuje metodę synchronizowaną wszystkie inne wątki muszą czekać.
synchronized (obiekt) instrukcja
Sekcja krytyczna – segment kodu w programie, w którym następuje dostęp do tej samej danej z różnych wątków. Powinno się używać synchronizacji tylko na poziomie metod.

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License