wyklad5 2x2


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 2x2
wyklad7 2x2
Sieci komputerowe wyklady dr Furtak
Wykład 05 Opadanie i fluidyzacja
WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznej
mo3 wykladyJJ
ZARZĄDZANIE WARTOŚCIĄ PRZEDSIĘBIORSTWA Z DNIA 26 MARZEC 2011 WYKŁAD NR 3
Wyklad 2 PNOP 08 9 zaoczne
Wyklad studport 8

więcej podobnych podstron