Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Podobne dokumenty
Obsługa zdarzeń. Wykład 4

Programowanie zdarzeniowe

Wykład 12: Obsługa Zdarzeń

Java SE Laboratorium nr 5. Temat: Obsługa zdarzeń

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

GUI - projektowanie interfejsów cz. II

Podstawowe informacje o apletach

Kurs programowania. Wykład 8. Wojciech Macyna

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

Aplikacje w Javie- wykład 11 Wątki-podstawy

Multimedia JAVA. Historia

Programowanie zdarzeniowe

Język Java wątki (streszczenie)

LABORATORIUM 7 Cel: 1_1

Język Java część 2 (przykładowa aplikacja)

Języki i metody programowania Java Obsługa zdarzeń - przykłady

Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna.

Programowanie komponentowe

akademia androida Service, BroadcastReceiver, ContentProvider część IV

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Współbieżność w środowisku Java

Java: interfejsy i klasy wewnętrzne

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Język Java wątki (streszczenie)

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku

setdefaultcloseoperation(jframe.exit_on_close);//obsługa zamykania aplikacji setvisible(true); } //wyświetlenie okna

Java biblioteka Swing

Programowanie obiektowe

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Programowanie obiektowe

Język Java część 2 (przykładowa aplikacja)

Programowanie współbieżne i rozproszone

Klasy abstrakcyjne, interfejsy i polimorfizm

Przetwarzanie równoległe i współbieżne

Kontenery i komponenty graficzne

Podstawy współbieżności

Programowanie komputerów

Wątki w Javie. Piotr Tokarski

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Klasy abstrakcyjne i interfejsy

Programowanie obiektowe zastosowanie języka Java SE

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

SWING. dr Jarosław Skaruz

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Programowanie Obiektowe GUI

Tworzenie i wykorzystanie usług

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie aplikacji na urządzenia mobilne

Programowanie graficznych interfejsów użytkownika

Programowanie wielowątkowe. Tomasz Borzyszkowski

Wątki (Threads) Potrzeby. Przetwarzanie równoległe i współbieŝne. Cechy programowania wątkowego. Concurrent programming is like

WIELOWĄTKOWOŚĆ. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

1 Atrybuty i metody klasowe

Bezpieczne uruchamianie apletów wg

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Programowanie wielowątkowe: podstawowe koncepcje, narzędzia w Javie. J. Starzyński, JiMP2, rok akad. 2005/2006

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Java jako zdalny interfejs aplikacji Webowych aplety

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Wykład 5 Okna MDI i SDI, dziedziczenie

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Projektowanie aplikacji internetowych laboratorium

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Java. Programowanie Obiektowe Mateusz Cicheński

Aplikacje internetowe i rozproszone - laboratorium

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

Programowanie obiektowe

Dokumentacja do API Javy.

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Współbieżność w Javie

Enkapsulacja, dziedziczenie, polimorfizm

Współbieżność w Javie

1. Co można powiedzieć o poniższym kodzie (zakładając, że znajduje się on w jednym pliku A.java)?

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

Aplikacje w środowisku Java

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Java - interfejs graficzny

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Polimorfizm. dr Jarosław Skaruz

Java Podstawy. Michał Bereta

Laboratorium z informatyki sem. III/ćw. 2 Wydział Transportu PW /19 MATERIAŁY POMOCNICZE DO ĆWICZENIA 2

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1

Aplikacja wielowątkowa prosty komunikator

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Transkrypt:

Informatyka I Interfejsy w Java. Przetwarzanie równoległe. Wątki. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017

Interfejsy w Java Pojęcie interfejsu w programowaniu Deklaracja interfejsu Implementacja interfejsu przez klasę Dziedziczenie interfejsów Przykłady implementacji interfejsów obsługi myszy oraz klawiatury w apletach Java

Pojęcie interfejsu Interfejs zbiór abstrakcyjnych metod Interfejs można interpretować jako klasę abstrakcyjną, która nie ma pól a wszystkie jej metody są publiczne IPojazd

Do czego służą interfejsy? Klasa w Java może dziedziczyć tylko z jednej klasy Relacja dziedziczenia wprowadza wspólne cechy we wszystkich pochodnych klasach Interfejsy pozwalają wprowadzić różnorodność: klasa może implementować wiele interfejsów na raz, przy czym mogą one realizować zupełnie odmienne nie związane ze sobą funkcje Np. obsługa myszy a klawiatury

Implementacja interfejsu przez klasę W nagłówku klasy należy dodać słowo kluczowe implements wraz z nazwą realizowanego interfejsu

Implementacja metod interfejsu Klasa powinna implementować wszystkie metody interfejsu

Dziedziczenie interfejsów Interfejsy podlegają dziedziczeniu jak każda klasa

Wybrane interfejsy apletu Java Aplet MouseListener MouseMotion Listener KeyListener ActionListener

Interfejs MouseListener Implementacja interfejsu w aplecie public class MojApplet extends JApplet implements MouseListener Włączenie nasłuchiwania zdarzeń myszy w aplecie public void init() { addmouselistener(this);

Metody interfejsu MouseListener mouseclicked mousepressed mousereleased mouseentered mouseexited Kliknięcie Wciśnięcie przycisku Zwolnienie przycisku Kursor myszy wszedł na obszar okno Kursor myszy wyszedł poza obszar okna

Obiekt MouseEvent Obiekt zawiera informacje dot. współrzędnych zdarzenia myszy oraz źródła zdarzenia (przycisk) Można sprawdzić m. innymi: Współrzędne miejsca wystąpienia zdarzenia int getx(), int gety() Przycisk myszy, który wywołał zdarzenie int getbutton() Stan klawiszy funkcyjnych boolean isaltdown(), boolean iscontroldown(),...

Interfejs MouseMotionListener Implementacja w programie interfejsu MouseMotionListener pozwala na bieżąco śledzić ruchy kursora myszy public class Animacja extends JApplet implements MouseMotionListener Implementacja interfejsu polega na zdefiniowaniu w kodzie programu dwóch metod public void mousedragged(mouseevent e) public void mousemoved(mouseevent e)

Interfejs KeyListener Implementacja interfejsu obsługi zdarzeń klawiatury Inicjalizacja interfejsu

Metody interfejsu KeyListener METODA keytyped keypressed OPIS Wprowadzono znak z klawiatury Klawisz został wciśnięty keyreleased Klawisz został zwolniony Obiekt KeyEvent przechowuje informacje o zdarzeniu: oznak getkeychar() okod klawisza getkeycode() olokalizację getkeylocation()

Przykład obsługi zdarzenia keypressed

Przetwarzanie równoległe. Wątki

Przetwarzanie sekwencyjne a równoległe Algorytm zakłada sekwencyjne wykonanie instrukcji w ramach jednostki obliczeniowej (procesor, rdzeń procesora, etc.) Długotrwałe operacje mogą blokować działanie całej jednostki Rozwiązanie problemu: równoległe wykonanie kodu na wielu jednostkach, wykonanie długotrwałych operacji poza głównym wątkiem aplikacji

Koncepcja równoległego wykonania zadań start Jeden program Instrukcje Menu użytkownika Długotrwałe obliczenia Obsługa zdarzeń Jedn. Oblicz. 1 finish Jedn. Oblicz. 2

Wątki w Java Wątek jest samodzielnym algorytmem Wątek ma początek i koniec, może posiadać argumenty i zwracać wynik Wątek może być wykonywany w tle, nie blokując głównej ścieżki programu class Thread

Obliczenia równoległe w Java Są realizowane z wykorzystaniem: 1) dziedziczenia z klasy Thread class Wątek extends Thread 2) implementacji interfejsu Runnable class Wątek implements Runnable

Uruchomienie wątku Uruchomienie wątku odbywa się poprzez wywołanie metody start (odziedziczonej z klasy Thread) Wątek A = new Wątek(); A.start();

Wykonanie wątku W celu wykonania obliczeń równoległych, należy umieścić odpowiednie instrukcje realizujące algorytm w metodzie run @Override public void run() { for(int i = 0; i<10; i++ ) { System.out.println("I= " + i); try { sleep(100); } catch (InterruptedException ex) {} } System.out.println("Wątek skończył robotę"); }

Zakończenie wątku Wątek jest kończony automatycznie po wyjściu z metody run Wewnątrz wątku można używać instrukcji sleep Nie należy zatrzymywać wątku poprzez wywołanie metody stop

Priorytety wątków Metoda setpriority() klasy Thread pozwala za ustawienie priorytetu wątku Standardowy priorytet Thread.NORM_PRIORITY Wysoki priorytet Thread.MAX_PRIORITY Niski priorytet Thread.MIN_PRIORITY

Zalety i wady wątków Zalety Pozwalają wykonywać obliczenia równoległe (w tym na jednym komputerze) Znacząco zwiększają wydajność (zależy od realizowanych algorytmów) Wady Jeśli procesy równoległe korzystają ze wspólnych zasobów, mogą pojawić się problemy Procesy mogą być zależne