[ 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