Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie obiektowe Andrzej Ziółkowski Wykład 8.

Podobne prezentacje


Prezentacja na temat: "Programowanie obiektowe Andrzej Ziółkowski Wykład 8."— Zapis prezentacji:

1 Programowanie obiektowe Andrzej Ziółkowski Wykład 8

2 Programowanie wielowątkowe i rozproszone Programowanie wielowątkowe – współbieżne wykonywanie wielu zadań w ramach jednego programu. Powody stosowania – przejrzystość programu, łatwa realizacja szybkiej reakcji na krytyczne zdarzenia (priorytety) Programowanie rozproszone – realizacja funkcji programu na wielu, często odległych procesorach pracujących w sieci. Powody stosowania – zwiększenie mocy obliczeniowych, łatwość aktualizacji (Web Services), niezawodność.

3 Programy wykonywane sekwencyjnie i równolegle

4 Wykonywanie programów (lub wątków) współbieżnie na jednym procesorze

5 Realizacja wielowątkowości w Javie Klasa Thread – obiekty tej klasy służą do zarządzania wątkami Wątkiem może być dowolny obiekt klasy implementującej interface Runnable, czyli klasy z metodą run wywoływaną przy uruchamianiu wątku. Obiektowi klasy Thread przyporządkowujemy obiekt, który będzie wątkiem i uruchamiamy go za pomocą metod klasy Thread

6 Wybrane metody klasy Thread start() – uruchamia wątek wywołując metodę run sleep(milisec) – wstrzymuje wątek na określony czas yield() – wstrzymuje chwilowo wątek, pozwala na wykonanie innych setPriority(priority) – ustawia priorytet dla wątku

7 Przykład class W1 implements Runnable { public void run() { // kod wykonywany w wątku 1 … } class W2 implements Runnable { public void run() { // kod wykonywany w wątku 2 … } W1 w1 = new W1(); W2 w2 = new W2(); Thread th1 = new Thread(w1); Thread th2 = new Thread(w2); th1.start(); th2.start();

8 Problemy współużytkowania zasobów Wątek A modyfikuje strukturę danych D, wątek B z niej korzysta. Struktura danych modyfikowana przez A może być w pewnym momencie niespójna i jeśli wątek B w tym momencie z niej skorzysta otrzymamy błędne wyniki Rozwiązanie – blokowanie zasobów (groźba zakleszczeń) lub nieprzerywanie krytycznych fragmentów kodu (synchronizacja). W Javie możemy tworzyć nieprzerywalne metody za pomocą atrybutu synchronized.

9 Programowanie rozproszone Fragmenty programu wykonują się na wielu komputerach jednocześnie Brak wspólnej pamięci, przekazywanie informacji poprzez sieć w postaci komunikatów Duża niezawodność Wykorzystanie olbrzymich mocy obliczeniowych komputerów w sieci Problemy z alokacją zasobów i synchronizacją Wielkie możliwości ale chyba jeszcze nie potrafimy tworzyć programów rozproszonych i organizować przetwarzania

10 Przykłady projektów wykorzystujących przetwarzanie rozproszone SETI – szukamy cywilizacji pozaziemskich, przetwarzanie zebranych danych z radioteleskopu Arecibo w Puerto Rico w celu wyfiltrowania sygnałów, które można uznać za nienaturalne. 5.5 mln komputerów, uczestnicy z ponad 200 krajów. Google – indeksowanie zawartości stron internetowych. Wikipedia – encyklopedia tworzona przez społeczność internautów Aplikacje internetowe - systemy firmowe, sklepy, portale,… Web Services – usługi, które może wykorzystywać wielle aplikacji, np.. Prognozy pogody, kursy walut, notowania akcji,…

11 Programowanie rozproszone - perspektywy Ilość komputerów w sieci może przejść w nową jakość Może w końcu uda się wykorzystać metody sztucznej inteligencji Programowanie obiektowe nie koniecznie musi być tu wykorzystywane – bardziej przydatne mogą być modele programowania oparte na usługach, serwisach i wymianie komunikatów

12 Tworzenie apletu zawsze można skorzystać z Help-u. Wybieramy: Help, Help Contents a następnie w zakładce index wpisujemy słowo applet (uwaga dwa p)

13 Tworzenie apletu - help

14 Wybieramy: File, New Project i w dialogu zaznaczamy Java Class Library

15 W nazwie projektu wpisujemy nr ćwiczenia (cw5), folder projektu N:\public_html\po

16 Klikamy prawym przyciskiem myszki na nazwie projektu (cw5) i wybieramy New, File/Folder

17 Aby utworzyć aplet możemy wybrać Java Classes, JApplet lub Applet ale wygodniej będzie użyć …

18 Java GUI Forms i Java Applet Form aby móc korzystać z Designera przy projektowaniu wyglądu apletu.

19 Wpisujemy Class name cw5 i Package też cw5

20 W zakładce Source zobaczymy wygenerowany kod klasy cw5 wywiedzionej z javax.swing.JApplet

21 W zakładce Design możemy zaprojektować wygląd potrzebnego apletu. Z Palette przeciągamy myszką JTextField, JButton, JLabel

22 Po rozmieszczeniu obiektów i ustaleniu ich wymiarów obiektów możemy, po kliknięciu prawym klawiszem myszki, zmienić nazwę obiektu i domyślny tekst

23 Wybieramy przycisk Oblicz i w zakładce Events w Properties wybieramy do obsługi zdarzenie mouseClicked

24 W wygenerowanej funkcji obsługi zdarzenia wpisujemy kod, który na oblicza liczbę liter i liczbę wyrazów w tekście wprowadzonym do pola tekst i wyświetla wyniki.

25 Debugowanie apletu – kliknij prawym myszy na cw5.java i wybierz Debug File

26 Aplety można debugować jak każdy inny program

27 W folderze public_html/po/cw5 umieszczamy plik index.html (poniżej) oraz kopiujemy tu plik cw5.jar. Ustawiamy odpowiednie uprawnienia i aplet powinien działać Cw5 Cw5 - Teksty:

28 Jeśli aplet nie pokazuje się prawidłowo a w Java Console sygnalizowany jest błąd: Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group Może być konieczne dodanie wstawki w pliku build.xml i ponowna kompilacja -->


Pobierz ppt "Programowanie obiektowe Andrzej Ziółkowski Wykład 8."

Podobne prezentacje


Reklamy Google