[ Pobierz całość w formacie PDF ]

instrukcji i inne wątki nie b�dą miały do niego dost�pu. Druga metoda to zablokowanie
obiektu w postaci:
przy czym obiekt użyty do synchronizacji nie musi być użyty w bloku instrukcji. Spró-
bujmy zatem zsynchronizować dost�p do zmiennej z poprzedniego ćwiczenia.
wiczenie 1.13.
Dokonaj synchronizacji dost�pu do zmiennej z ćwiczenia 1.12.
Rozdział 1. Wątki i programowanie współbieżne w Javie 23
Na rysunku 1.6 widać, że synchronizacja zakończyła si� pełnym powodzeniem. Użyli-
śmy dodatkowego obiektu , który pełni rol�  strażnika dost�pu do zmiennej
. Jest to jego jedyna rola, do niczego innego nam w tym przykładzie nie służy.
Oczywiście nic nie stoi na przeszkodzie, aby użyć obiektu, który jest wykorzystywany
w kodzie programu, np. tablicy, jednakże w powyższym ćwiczeniu po prostu nie mieli-
śmy takiego pod r�ką. Nie możemy natomiast użyć w tym celu zmiennej (wszak
to byłoby najwygodniejsze), gdyż jest ona typu , a instrukcji możemy
użyć tylko w stosunku do typów wyprowadzonych z klasy . Pokażmy jednak,
że do synchronizacji można użyć obiektu, który b�dzie modyfikowany. Nie musimy wte-
dy wprowadzać dodatkowej zmiennej synchronizacyjnej. Aby tego dokonać, musimy
napisać własną klas� enkapsulującą zmienną typu . To zadanie powinno być zupełnie
banalne.
24 Java. wiczenia zaawansowane
Rysunek 1.6.
Synchronizacja
powiodła się
i otrzymany
wynik jest
teraz prawidłowy
wiczenie 1.14.
Napisz kod klasy enkapsulującej zmienną typu .
wiczenie 1.15.
Dokonaj synchronizacji dost�pu do zmiennej z ćwiczenia 1.12. Nie używaj dodat-
kowego obiektu klasy . Zamiast tego zmień typ z na i użyj tego
obiektu do synchronizacji.
Rozdział 1. Wątki i programowanie współbieżne w Javie 25
Jak widać, obiektem służącym do synchronizacji jest tu i jednocześnie jest to
obiekt, który modyfikujemy w bloku . Jest to bardzo wygodna metoda, gdyż
nie musimy tworzyć dodatkowych zmiennych zaśmiecających system.
Skorzystajmy teraz z drugiego sposobu synchronizacji, czyli z metod synchronizowa-
nych. Zgodnie z tym, co napisaliśmy powyżej, musimy utworzyć metod�, która b�dzie
modyfikowała obiekt i zadeklarować ją jako . Może ona wyglądać
w sposób nast�pujący:
26 Java. wiczenia zaawansowane
Pozostaje teraz wykorzystać ten kod w aplikacji.
wiczenie 1.16.
Dokonaj synchronizacji dost�pu do zmiennej typu . Wykorzystaj synchronizowa-
ną metod� .
Rozdział 1. Wątki i programowanie współbieżne w Javie 27 [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • grzeda.pev.pl