Współbieżność
Wątki w JAVA-ie
Kurs programowania 1
Współbieżność może być realizowana na poziomie systemu
Java - wykład 5
operacyjnego (procesy) lub na poziomie aplikacji (wątki). W JAVA-ie
powszechnie stosuje się wątki. Na wątkach zbudowana jest
większość aplikacji w tym GUI.
Maciek Gębala
Definiowanie zadania
Wątek wykonuje pewne zadanie - aby je zdefiniować trzeba
7 grudnia 2010
zaimplementować interfejs z metodą oraz skojarzyć
to zadanie z określonym wątkiem.
Maciek Gębala Kurs programowania 1 Maciek Gębala Kurs programowania 1
Przykład Klasa
Klasa jest klasą bazową wątków. Jej konstruktor jako
argument przyjmuje klasę z zaimplementowanym interfejsem
a uruchamia wątek metodą która wywołuje metodę
. Wątki mogą też być definiowane jako pochodne klasy .
Usypianie wątku
Zawieszenie wykonywania wątku. Metoda wywołuje wyjątek
i musi być umieszczona w środowisku .
Próba przełączenia wątku
Sugerowanie zarządcy wątków, że w tym momencie można
przełączyć sterowanie na inny wątek (o tym samym priorytecie).
Maciek Gębala Kurs programowania 1 Maciek Gębala Kurs programowania 1
Klasa Klasa
Priorytet wątku i
Wątki mogą mieć ustawione priorytety pomiędzy
Aączenie wątków
a . Wątki o wyższym
Wątek może wywołać metodę innego wątku. W tym
priorytecie są wykonywane w pierwszej kolejności co może
momencie zawiesza się wykonanie wątku wywołującego, wykonuje
spowodować, ze wątki o niższym priorytecie nie będą wykonywane.
wątek wywołany a po jego zakończeniu z powrotem wracamy do
Wątki są startowane z domyślnym priorytetem:
wątku wywołującego.
.
Nadawanie nazwy
Wątki-demony
Nadanie nazwy która jest między innymi wyświetlana przez metodę
Demon to wątek który działa w tle programu. Program nie czeka
obiektu.
np. z zakończeniem działania na wątki które są demonami.
Ustawienie wątku jako demona musi się odbyć przed jego
uruchomieniem.
Maciek Gębala Kurs programowania 1 Maciek Gębala Kurs programowania 1
Przykład Współdzielenie zasobów
Wątki z punktu widzenia programu są wykonywane niezależnie i nie
wiadomo w jakiej kolejności zostaną wywołane. Stąd przy korzystaniu
ze wspólnych zasobów musimy zapewnić im pewną synchronizację
i zapobiec kolizjom. JAVA ma wbudowany mechanizm zapobiegający
takim sytuacjom.
Słowo kluczowe
Za pomocą tego słowa oznaczamy metodę która nie powinna być
przerwana ze względu na możliwość kolizji. Metoda ta zawsze będzie
wykonywana w całości bez względu na możliwość przejścia na inny
wątek.
Środowisko
Powiązanie nieprzerywalnego ciągu komend z obiektem który jest
traktowany jako semafor.
Maciek Gębala Kurs programowania 1 Maciek Gębala Kurs programowania 1
Współdziałanie wątków Przykład
Metody i
Metoda nie zwalnia blokad. Metoda zawiesza
brak synchronizacji
wykonywanie wątku na milisekund i zwalnia blokady. Jej działanie
zastosowanie metody
kończy się w wyniku upłynięcia czasu, albo wywołania metod
zastosowanie metody
lub . Dla bez argumentów nie ma
oraz i
warunku czasowego.
zastosowanie środowiska
Zakleszczenie
przykład zakleszczenia
Niewłaściwe stosowanie metody przez różne wątki może
doprowadzić do zakleszczenia, czyli blokady.
Maciek Gębala Kurs programowania 1 Maciek Gębala Kurs programowania 1
Procesy zewnętrzne Przykład
Uruchamianie procesu zewnętrznego
Metoda
umożliwia wykonywanie procesu zewnętrznego.
Obiekt - główne metody
Maciek Gębala Kurs programowania 1 Maciek Gębala Kurs programowania 1
Wyszukiwarka
Podobne podstrony:
wyklad6 2x2wyklad7 2x2Sieci komputerowe wyklady dr FurtakWykład 05 Opadanie i fluidyzacjaWYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznejmo3 wykladyJJZARZĄDZANIE WARTOŚCIĄ PRZEDSIĘBIORSTWA Z DNIA 26 MARZEC 2011 WYKŁAD NR 3Wyklad 2 PNOP 08 9 zaoczneWyklad studport 8więcej podobnych podstron