Programowanie sieciowe
|
|
- Henryka Romanowska
- 7 lat temu
- Przeglądów:
Transkrypt
1 Programowanie sieciowe mgr Marcin Raniszewski mgr inŝ. Paweł Kośla Łódź, 2009 Wykład 6: Wielowątkowość, operacje na plikach, kolekcje 1
2 Plan wykładu Wątki (klasa Thread i interfejs Runnable) Synchronizacja śycie wątków Odczyt i zapis do plików Typowe kolekcje 2
3 Wielowątkowość Proces to egzemplarz wykonywanego programu (inaczej: program w trakcie wykonywania). KaŜdemu procesowi system operacyjny przydziela zasoby, takie jak: procesor, pamięć (przestrzeń adresowa), dostęp do urządzeń wejścia-wyjścia oraz plików. Wątek (Thread) to jednostka wykonawcza w obrębie jednego procesu, będąca kolejnym ciągiem instrukcji wykonywanym w obrębie tych samych danych (procesu). Wątki mogą korzystać z przestrzeni adresowej procesu, ale posiadają własne kopie zmiennych lokalnych. 3
4 Wielowątkowość W Javie istnieją dwa sposoby korzystania z wątków: - tworzenie klas pochodnych klasy Thread - implementacja interfejsu Runnable Klasa, której obiekty mają działać jako wątki musi zawierać metodę: public void run() class MyThread extends Thread { public void run() { MyThread watek = new MyThread(); lub: class MyThread implements Runnable { public void run() { Thread watek = new Thread(new MyThread()); 4
5 Wielowątkowość Wątki uruchamia się metodą watek.start(). Wówczas, wykonywane są instrukcje zaimplementowane w metodzie run() (niezaleŝnie od instrukcji głównego programu). Wątek trwa do zakończenia metody run(). Mimo, Ŝe istnieje takŝe metoda stop(), to nie naleŝy jej uŝywać do wymuszania zakończenia wątku lepiej sprawdzać warunek logiczny wewnątrz run(). 5
6 Wielowątkowość - synchronizacja synchronized zabezpiecza metody lub obiekty przed jednoczesnym dostępem przez wiele wątków. Aby wskazać, Ŝe pewne linie kodu powinny być wykonywane razem, naleŝy je umieścić w bloku synchronized, który przeprowadza synchronizację na pewnym obiekcie, którego te linie kodu dotyczą. Jeśli metoda oznaczona jako synchronized jest aktualnie wykonywana, to wszystkie kolejne jednoczesne próby jej realizacji zostaną wstrzymane aŝ do czasu zakończenia pierwszego wywołania. public synchronized void add(object obj) {... synchronized (System.out) { //Pewne operacje na obiekcie System.out //Podczas wykonywania tego bloku przez pewien wątek załoŝona zostaje //blokada na dostęp do obiektu System.out //Jeśli pewien inny wątek chce skorzystać z obiektu System.out //zostaje zablokowany do czasu zdjęcia blokady z tego obiektu 6
7 Wielowątkowość - synchronizacja Synchronizacja bloku jest tylko częściową blokadą obiektu, na którym jest załoŝona. Inne metody mogą korzystać z synchronizowanego obiektu o ile nie usiłują synchronizować się na tym obiekcie. Nie zawsze synchronizacja jest najlepszym rozwiązaniem i często warto pokusić się o rozwiązania alternatywne: uŝywanie zmiennych lokalnych (kaŝdy wątek działa na własnym zestawie zmiennych lokalnych), uŝywanie metod działających na argumentach typów prostych (przekazywanych przez wartość) lub bezargumentowych, tworzenie klas niezmiennych (deklaracja wszystkich pól jako prywatnych, nie pisanie metod modyfikujących pola klasy). 7
8 Wielowątkowość - priorytety KaŜdy wątek ma priorytet w Javie jest to liczba całkowita z zakresu od 1 do 10. Wątek o priorytecie 10 będzie wykonywany w pierwszej kolejności, wątek o priorytecie 1 w ostatniej. Gdy gotowych do wykonania jest wiele wątków, maszyna wirtualna Javy uruchamia tylko ten o najwyŝszym priorytecie. Domyślnym priorytetem dla tworzonych wątków jest 5. Priorytety wątków przydatne gdy chcemy niektórym z nich przydzielić więcej czasu procesora (wątki do komunikacji z uŝytkownikami krótki czas odpowiedzi), a niektórym mniej (wątki dokonujące obliczeń, wątki długotrwałe brak wymagania co do prędkości realizacji). Pola i metody klasy Thread związane z priorytetami: public static final int MIN_PRIORITY = 1 public static final int NORM_PRIORITY = 5 public static final int MAX_PRIORITY = 10 public final void setpriority(int newpriority) public final int getpriority() 8
9 Wielowątkowość - wywłaszczenie Wszystkie maszyny wirtualne Javy do zarządzania wątkami o róŝnych priorytetach uŝywają programu z wywłaszczeniowym harmonogramem wątków (wątek o wyŝszym priorytecie wywłaszcza <przerywa działanie> wątek o niŝszym priorytecie). W przypadku działania wielu wątków o równych priorytetach: program wywłaszczający w sposób przypadkowy zatrzymuje działanie wątków i przydziela czas procesora innym wątkom, WaŜne jest aby upewnić się, Ŝe wszystkie wątki zatrzymują się periodycznie, po to by inne wątki miały okazję zadziałać. 9
10 Wielowątkowość - wywłaszczenie Wątek moŝe się zatrzymać lub ustąpić miejsca innym wątkom poprzez: zablokowanie wejścia i wyjścia, zablokowanie obiektu synchronizowanego, rezygnację, przejście w stan uśpienia, połączenie z innym wątkiem, czekanie na obiekcie, skończenie działania, wywłaszczenie przez inny wątek o wyŝszym priorytecie, zatrzymanie. 10
11 Wielowątkowość - zablokowanie Zablokowanie występuje wtedy gdy wątek musi się zatrzymać by poczekać na zasób, którego nie posiada. Najczęściej wątki blokują się na elementach wejścia/wyjścia systemu (czekanie na przybycie danych z sieci). Blokada występuje takŝe podczas próby dostępu do bloków lub metod synchronizowanych, na których jest załoŝona blokada. 11
12 Wielowątkowość - rezygnacja Wątek moŝe oddać sterowanie poprzez jawną rezygnację. SłuŜy do tego statyczna metoda klasy Thread: public static void yield() Wątek wywołując tą metodę, sygnalizuje wirtualnej maszynie Javy, Ŝe moŝe ona zacząć inny wątek, jeśli jest gotowy do uruchomienia. Wątek podczas rezygnacji nie powinien być na niczym zsynchronizowany (rezygnacja wątku nie zwalnia Ŝadnych blokad naleŝących do wątku). 12
13 Wielowątkowość stan uśpienia Stan uśpienia to forma rezygnacji z zasobów systemu na pewien ustalony czas. Wątek przechodzący w stan uśpienia podobnie jak podczas rezygnacji zatrzymuje wszystkie swoje blokady, więc nie powinien on tego robić w blokach zsynchronizowanych. Odpowiednie metody z klasy Thread to: public static void sleep(long milliseconds) throws InterruptedException public static void sleep(long milliseconds, int nanoseconds) throws InterruptedException Nie ma gwarancji, Ŝe wątek będzie spał dokładnie tyle, ile chcemy. Po pierwsze nie wiadomo czy wirtualna maszyna Javy na danym systemie ma moŝliwość odmierzenia czasu z dokładnością do nanosekund czy milisekund. Po drugie po przebudzeniu wątku, moŝe on czekać w kolejce na przydzielenie czasu procesora. 13
14 Wielowątkowość stan uśpienia MoŜliwe jest przedwczesne przebudzenie uśpionego wątku poprzez wywołanie metody: public void interrupt() Wywołanie tej metody dla wątku ustawia status przerwania (interrupted status) wątku na true. Wywołanie tej metody w przypadku uśpionego wątku powoduje przerwanie snu wątku i wyrzucenie wyjątku InterruptedException. Status przerwania wątku nadal pozostaje ustawiony na false. 14
15 Wielowątkowość stan uśpienia public class Watek { public static void main(string[] args) { System.out.println("Start programu"); MyThread watek1 = new MyThread(1); MyThread watek2 = new MyThread(2); watek1.start(); watek2.start(); class MyThread extends Thread { int nr; MyThread(int i) { nr=i; Start programu watek 1: 0 watek 2: 0 watek 1: 1 watek 2: 1 watek 1: 2 watek 2: 2 watek 1: 3 watek 2: 3 watek 1: 4 watek 2: 4 watek 1: 5 watek 2: 5 public void run() { for(int i=0 ; i<10; i++){ System.out.println("watek " + nr + ": " + i); try { this.sleep(100); catch(interruptedexception ie) { System.out.println("Nastąpiło przerwanie snu wątku " + nr); 15
16 Wielowątkowość łączenie z innym wątkiem Łączenie wątków jest przydatne gdy jednemu wątkowi potrzebny jest wynik pracy drugiego wątku. Do łączenia wykorzystuje się następujące metody klasy Thread: public final void join() throws InterruptedException public final void join(long milliseconds) throws InterruptedException public final void join(long milliseconds, int nanoseconds) throws InterruptedException 16
17 Wielowątkowość łączenie z innym public class Watek { public static void main(string[] args) { try{ System.out.println("start programu"); MyThread watek = new MyThread(); watek.start(); System.out.println("Kolejna instrukcja"); watek.join(); System.out.println("Nastepna instrukcja"); catch(interruptedexception e) { class MyThread extends Thread { public void run() { for(int i=0 ; i<10; i++){ System.out.println("watek: " + i); start programu Kolejna instrukcja watek: 0 watek: 1 watek: 2 watek: 3 watek: 4 watek: 5 watek: 6 watek: 7 watek: 8 watek: 9 Nastepna instrukcja wątkiem 17
18 Wielowątkowość czekanie na MoŜliwe jest czekanie na pewnym obiekcie przez dany wątek. Do czekania na obiekcie moŝna uŝyć metod klasy Object: obiekcie public final void wait() throws InterruptedException public final void wait(long milliseconds) throws InterruptedException public final void wait(long milliseconds, int nanoseconds) throws InterruptedException 18
19 Wielowątkowość czekanie na Wątek czeka na obiekcie dopóki: nie upłynie czas oczekiwania, wątek nie zostanie przerwany, obiekt nie zostanie powiadomiony. obiekcie 19
20 Wielowątkowość czekanie na obiekcie Powiadomienie obiektu następuje wtedy, gdy jakiś inny wątek wywoła na nim metodę klasy Object: public final void notify() public final void notifyall() Metoda notify() w dość losowy sposób wybiera jeden z listy wątków czekających na obiekcie i go budzi. Metoda notifyall() budzi wszystkie wątki czekające na danym obiekcie. 20
21 Wielowątkowość zatrzymanie Gdy metoda run() kończy swoje działanie, wątek umiera. NaleŜy pamiętać by nie przesadzać z tworzeniem wątków, nie tworzyć ich bez potrzeby. Jeśli działanie funkcji run() jest bardzo proste, krótkie i moŝe je zrealizować wątek główny programu to lepiej nie tworzyć wątku. Utworzenie wątku wiąŝe się z pewnym narzutem czasu działania, więc jest wysoko prawdopodobne, Ŝe wykonanie tych samych operacji w głównym wątku będzie szybsze niŝ w oddzielnym wątku. 21
22 import java.net.*; import java.io.*; import java.util.*; public class Server { public static void main(string[] args) { Server me = new Server(); me.echo(" "); public void echo(string host){ try{ InetAddress my = InetAddress.getByName(" "); ServerSocket serw = new ServerSocket(1090); while(true){ Socket sock = serw.accept(); new Kl(sock).start(); catch(ioexception e){ e.printstacktrace(); finally { (...) class Kl extends Thread { Socket klient; Kl(Socket sock){ this.klient = sock; public void run(){ try{ ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(klient.getOutputStream())); out.writedouble(23.54); out.flush(); klient.close(); catch(ioexception e){ e.printstacktrace(); finally { (...) 22
23 Klasa File Klasa File reprezentuje nazwę konkretnego pliku albo nazwę zbioru plików w katalogu. Najczęściej uŝywanym konstruktorem klasy File jest: public File(String pathname) throws NullPointerException gdzie pathname to ścieŝka dostępu do pliku lub katalogu. Konstruktor wyrzuci wyjątek NullPointerException jeśli pathname jest null-em. Kolejnymi konstruktorami są: public File(String parent, String child) throws NullPointerException public File(File parent, String child) throws NullPointerException tworzą one ścieŝkę do pliku lub katalogu na podstawie istniejącej ścieŝki parent i nowej ścieŝki child (konkatenacja). Jeśli parent jest null-em nie jest brany pod uwagę, jeśli child jest null-em - wyrzucany jest wyjątek 23 NullPointerException.
24 Klasa File Istnieje wiele uŝytecznym metod klasy File, oto niektóre z nich: public boolean canread() public boolean canwrite() public boolean createnewfile() public boolean delete() public boolean exists() public String getpath() public boolean isdirectory() public boolean isfile() public boolean ishidden() public long lastmodified() public long length() public String[] list() public boolean mkdir() 24
25 Odczyt/zapis z/do pliku W Javie odczyt i zapis do plików realizowany jest na zasadzie strumieni. Po otwarciu pliku do odczytu, cała jego zawartość jest dostępna jako strumień. Odczytując z niego dane, wyciągamy je bajt po bajcie ze strumienia. Jeśli chcemy pisać do pliku to teŝ konstruujemy odpowiedni strumień i piszemy na nim, a dane trafiają do pliku. Standardowo czytanie i zapis do pliku odbywa się bajt po bajcie. Do odczytu pojedynczych bajtów słuŝy klasa FileInputStream, a do zapisu FileOutputStream. 25
26 Odczyt z pliku FileInputStream fis = null; try { fis = new FileInputStream("pliktestowy.txt"); int bajt = 0; while((bajt = fis.read())!= -1){ System.out.print((char)bajt); catch (IOException ex){ System.out.println("Błąd przy odczycie danych: " + ex); finally { (...) 26
27 Odczyt z pliku Java, oprócz czytania bajt po bajcie, oferuje takŝe moŝliwość odczytu całej linii do obiektu typu String. MoŜliwe jest to dzięki tzw. strumieniom buforowanym. Najpierw trzeba utworzyć obiekt FileReader, a następnie trzeba stworzyć obiekt BufferedReader, podając mu obiekt FileReader jako argument: String linia = null; BufferedReader br = null; try { br = new BufferedReader(new FileReader("plik_testowy.txt"); while((linia = br.readline())!= null){ System.out.println(linia); catch (IOException ex){ System.out.println("Błąd przy operacji na pliku: "+ex); finally { (...) 27
28 Zapis do pliku FileOutputStream fos = null; try{ String str = "Próba zapisu"; fos = new FileOutputStream("plik_zapis.txt"); for(int i = 0; i < str.length(); i++){ fos.write((int)str.charat(i)); catch(ioexception ex) { System.out.println("Błąd operacji na pliku: " + ex); finally { (...) 28
29 Zapis do pliku Podobnie, aby móc buforować zapis do pliku moŝna posłuŝyć się klasami PrintWriter, BufferedWriter i FileWriter: PrintWriter pw = null; try{ String str = "Próba zapisu"; pw = new PrintWriter(new BufferedWriter(new FileWriter("plik_zapis.txt"))); pw.write(str); pw.flush(); catch(ioexception ex) { System.out.println("Błąd operacji na pliku: " + ex); finally { (...) 29
30 Kolekcje Kolekcje to implementacje struktur danych, słuŝących do przechowywania, przeglądania i zarządzania grupami obiektów Dobór odpowiedniej kolekcji zaleŝy od rozwiązywanego problemu: Czy będziemy chcieli przeszukiwać zbiór składający się z tysięcy czy nawet milionów elementów? Czy niezbędne będzie uporządkowanie tych elementów, moŝliwość łatwego wstawiania, usuwania elementów? Czy elementy mają być szybko wyszukiwane? Kolekcje w Javie rozdzielone są na: interfejsy definiują abstrakcyjne właściwości i operacje kolekcji, w oderwaniu od konkretnych implementacji implementacje klasy będące implementacjami konkretnych interfejsów 30
31 Interfejs Collection Interfejs Collection reprezentuje dowolną grupę obiektów. public interface Collection { boolean add (Object o); boolean contains(object o); boolean isempty(); boolean remove(object o); int size(); Iterator iterator();... Collection Object first(); Object last();... Set SortedSet List boolean add(int index, Object o); Object remove(int index); Object set(int index, Object o);... 31
32 Interfejsy Set, SortedSet, List Interfejs Set implementują zbiory, czyli struktury danych, nie zawierające dublujących się elementów. Bardziej formalnie zbiór nie moŝe zawierać dwóch obiektów p1 i p2, dla których p1.equals(p2) zwróci wartość true. Zbiór moŝe zawierać co najwyŝej jeden obiekt null. Klasy implementujący ten interfejs to: HashSet, LinkedHashSet, TreeSet Interfejs SortedSet jest podinterfejsem interfejsu Set i gwarantuje poruszanie się po kolekcji w sposób uporządkowany. Obiekty przechowywane w kolekcjach implementujących ten interfejs powinny implementować interfejs Comparable. Klasa implementująca ten interfejs to: TreeSet Interfejs List implementują listy, czyli struktury danych, w których elementy mają z góry ustalone miejsce. Elementy mogą się dublować. Klasy implementujące ten interfejs to: ArrayList, LinkedList 32
33 Interfejs Map Interfejs Map reprezentuje grupę odwzorowań klucz i wartość. Klucze nie mogą być zdublowane. Klasy które implementują ten interfejs to: HashMap, Hashtable, TreeMap. public interface Map { boolean containskey (Object key); boolean containsvalue(object value); Object get(object key); boolean isempty(); Object put(object key, Object value) Object remove(object key); int size(); Collection values();... Map SortedMap Object firstkey(); Object lastkey();... 33
34 Interfejs SortedMap Interfejs SortedMap reprezentuje mapy, które gwarantują sortowanie kluczy, według porządku wprowadzonego poprzez implementacje interfejsu Comparable dla obiektu kluczy lub poprzez podanie klasy komparatora przy tworzeniu mapy (który będzie uŝywany do sortowania kluczy). Klasa komparatora to klasa implementująca interfejs Comparator. Klasa implementująca interfejs SortedMap to TreeMap 34
35 Interfejs Iterator UmoŜliwia poruszanie się po dowolnej klasie implementującej interfejs Collection public interface Iterator { boolean hasnext(); Object next(); void remove(); Powtarzając wywołanie metody next() dla iteratora moŝemy odwiedzić kolejne obiekty kolekcji. Jeśli dotrzemy w ten sposób do końca kolekcji, to wywołanie metody next() spowoduje wyrzucenie wyjątku NoSuchElementException. Dlatego teŝ wywołanie metody next() nalezy poprzedzić wywołaniem metody hasnext() Kolejność odwiedzania elementów zaleŝy od typu kolekcji. Jeśli odwiedzamy elementy kolekcji ArrayList, to iterator rozpoczyna działanie od elementu o indeksie 0 i następnie zwiększa wartość indeksu o 1. Dla kolekcji HashSet elementy będą odwiedzane w przypadkowej kolejności 35
36 Interfejs Iterator MoŜemy być pewni, Ŝe uŝywając iteratora, odwiedzimy wszystkie elementy kolekcji, ale nie wolno nam czynić załoŝeń odnośnie ich uporządkowania Iteratory w Javie powinniśmy sobie wyobraŝać jako znaczniki ustawione zawsze pomiędzy elementami kolekcji (jeśli powołujemy iterator to jest on ustawiony przed elementami kolekcji). Wywołanie metody next() powoduje, Ŝe iterator przesuwa się ponad kolejnym elementem kolekcji i zwraca referencję do niego 36
37 Wykaz najwaŝniejszych implemenatcji kolekcji Typ kolekcji ArrayList LinkedList HashSet TreeSet LinkedHashSet HashMap TreeMap LinkedHashMap Opis sekwencja indeksowana o zmiennych rozmiarach (odpowiednik tablicy) sekwencja uporządkowana umoŝliwiająca efektywne wstawianie i usuwanie elementów (odpowiednik listy) zbiór nieuporządkowany (nie dopuszcza duplikatów) zbiór uporządkowany zbiór zapamiętujący kolejność wstawiania elementów mapa (asocjacje klucz/wartość) mapa o kluczach uporządkowanych mapa zapamiętująca porządek, w którym umieszczane były asocjacje 37
38 Przykłady uŝycia ArrayList import java.awt.point; import java.util.arraylist; import java.util.iterator; public class TestArrayList { public static void main(string[] args) { ArrayList list = new ArrayList(); list.add(new Point(1,1)); list.add(new Point(1,2)); list.add(new Point(1,3)); list.add(1, new Point(2,4)); Iterator i = list.iterator(); while (i.hasnext()) { System.out.println((Point)i.next()); list.remove(3); list.set(1, new Point(3,3)); System.out.println("==po modyfikacjach=="); i = list.iterator(); while (i.hasnext()) { System.out.println((Point)i.next()); java.awt.point[x=1,y=1] java.awt.point[x=2,y=4] java.awt.point[x=1,y=2] java.awt.point[x=1,y=3] ==po modyfikacjach== java.awt.point[x=1,y=1] java.awt.point[x=3,y=3] java.awt.point[x=1,y=2] 38
39 Przykłady uŝycia HashMap import java.util.hashmap; import java.util.iterator; import java.util.map; import java.util.set; public class Test2{ public static void main(string[] args) { HashMap map = new HashMap(); map.put(new Integer(1), "Marcin"); map.put(new Integer(2), "Ada"); map.put(new Integer(4), "Weronika"); map.put(new Integer(3), "Krzysiek"); Set set = map.entryset(); Iterator i = set.iterator(); while (i.hasnext()) { Map.Entry m = (Map.Entry)i.next(); System.out.println((Integer)m.getKey() + " -> " + (String)m.getValue()); map.remove(new Integer(2)); if (!map.containskey(new Integer(5))) { map.put(new Integer(5), "Pucio"); else { System.out.println("Klucz juz istnieje w mapie"); System.out.println("==po modyfikacjach=="); i = map.entryset().iterator(); while (i.hasnext()) { Map.Entry m = (Map.Entry)i.next(); System.out.println((Integer)m.getKey() + " -> " + (String)m.getValue()); if (map.containskey(new Integer(1))) { System.out.println((String)map.get(new Integer(1))); 2 -> Ada 4 -> Weronika 1 -> Marcin 3 -> Krzysiek ==po modyfikacjach== 4 -> Weronika 1 -> Marcin 3 -> Krzysiek 5 -> Pucio Marcin 39
Współbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Bardziej szczegółowoAutor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
Bardziej szczegółowoWspółbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Bardziej szczegółowoWielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.
Wielowątkowość Programowanie w środowisku rozproszonym. Wykład 1. Informacje organizacyjne Wymiar godzin: W-30, LAB-15 Zaliczenie wykonanie kilku programów i ich zaliczenie (w trakcie zajęć laboratoryjnych)
Bardziej szczegółowoProgramowanie w języku Java. Kolekcje
Programowanie w języku Java Kolekcje Definicja Kolekcja to obiekt, który grupuje elementy danych (inne obiekty) i pozwala traktować je jak jeden zestaw danych, umożliwiając jednocześnie wykonywanie na
Bardziej szczegółowoWątki w Javie. Piotr Tokarski
Wątki w Javie Piotr Tokarski Wprowadzenie Co to są wątki? Co to są wątki? Każdy program ma przynajmniej jeden wątek Co to są wątki? Każdy program ma przynajmniej jeden wątek Wątki są po to, by symulować
Bardziej szczegółowoKolekcje - pakiet Java Collections Framework
Programowanie obiektowe Kolekcje - pakiet Java Collections Framework Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Definicja kolekcji
Bardziej szczegółowoJava. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
Bardziej szczegółowoWątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
Bardziej szczegółowoKurs programowania. Wykład 8. Wojciech Macyna
Wykład 8 Program bez watków, jeden procesor, trzy zadania Program z watkami, jeden procesor, trzy zadania Procesory wielordzeniowe, każde zadanie na osobnym procesorze Trzy zadania uruchomione w watkach
Bardziej szczegółowojava.util.* :Kolekcje Tomasz Borzyszkowski
java.util.* :Kolekcje Tomasz Borzyszkowski Wstęp Kolekcje w Java dają programiście pewien standardowy sposób radzenia sobie z przetwarzaniem grup obiektów. Implementacja kolekcji w Java składa się z następujących
Bardziej szczegółowoJęzyk Java wątki (streszczenie)
Programowanie współbieżna Język Java wątki (streszczenie) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Języka Java wątki Autor:
Bardziej szczegółowoKolekcje - pakiet Java Collections Framework
Programowanie obiektowe Kolekcje - pakiet Java Collections Framework Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Programowanie obiektowe
Bardziej szczegółowoProgramowanie Obiektowe (Java)
1. Wprowadzenie do kontenerów Wykład ósmy Kontenery s ą obiektami, które potrafi ą przechowywa ć inne obiekty w określony sposób. O kontenerach można myśle ć jako o gotowych do użycia strukturach danych.
Bardziej szczegółowoWątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().
Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public
Bardziej szczegółowoObliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003
Obliczenia równoległe i rozproszone w JAVIE Michał Kozłowski 30 listopada 2003 Wątki w JAVIE Reprezentacja wątków jako obiektów Uruchamianie i zatrzymywanie wątków Realizacja wątków Ograniczenia Mechanizmy
Bardziej szczegółowo1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
Bardziej szczegółowoKurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017
Wykład 8 10 maj 2017 Współbieżność Watki w JAVA-ie Współbieżność może być realizowana na poziomie systemu operacyjnego (procesy) lub na poziomie aplikacji (watki). W JAVA-ie powszechnie stosuje się watki.
Bardziej szczegółowoJęzyk Java wątki (streszczenie)
Programowanie współbieŝna Język Java wątki (streszczenie) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Podstawowe pojęcia: procesy
Bardziej szczegółowoKolekcje mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Kolekcje mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Kolekcja obiekt, który grupuje inne obiekty, traktując je jako jeden zestaw danych i pozwalający na wykonywanie operacji
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 8: Tablice i kolekcje obiektów. 4/27/2013 S.Deniziak: Programowanie obiektowe - Java 1 Tablice class A { A [ ] a; A [ ] b=new A[5]; a b A [ ] c = {new A(), new A(), new A(),
Bardziej szczegółowoRealizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski
Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski
Bardziej szczegółowoAplikacje w Javie- wykład 11 Wątki-podstawy
1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/
Bardziej szczegółowoStworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.
Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 6, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do operacji wejścia/wyjścia: strumienie 2. Podstawowe klasy strumieni i InputStream/OutputStream
Bardziej szczegółowoKolekcje. Na podstawie:
Kolekcje Na podstawie: http://wazniak.mimuw.edu.pl Kolekcje w Javie Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór. Pozwala na zapis, odczyt, korzystanie z danych oraz
Bardziej szczegółowoJava. Programowanie Obiektowe Mateusz Cicheński
Java Programowanie Obiektowe Mateusz Cicheński Wielowątkowość Proces a wątek? Thread vs Runnable sleep(), interrupt(), join() Problemy wielowątkowości Obiekty niemodyfikowalne (immutable) Serializacja
Bardziej szczegółowoJava Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.
Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.
Bardziej szczegółowodr Krzysztof Podlaski
dr Krzysztof Podlaski Wydział Fizyki i Informatyki Stosowanej 19.11.2010 Łódź Wstęp do Java, wykład 3 1 Biblioteki standardowe Obszerny zestaw Klas i Interfejsów Obsługa Strumieni We-Wy Dysków Sieci java.io,
Bardziej szczegółowoKolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór.
Kolekcje Kolekcje w Javie Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór. Pozwala na zapis, odczyt, korzystanie z danych oraz ich wzajemną komunikację. Przykład: ręka
Bardziej szczegółowoWspółbieżność w Javie
Wielowątkowość (obsługa wątków) Tworzenie wątków Stany wątków i ich zmiana Demony Grupy wątków Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych pakiet java.util.concurrent
Bardziej szczegółowoWstęp do Java. Operacje Wejścia-Wyjścia Programowanie Wielowątkowe. dr Krzysztof Podlaski. Wydział Fizyki i Informatyki Stosowanej
Wstęp do Java Operacje Wejścia-Wyjścia Programowanie Wielowątkowe dr Krzysztof Podlaski Wydział Fizyki i Informatyki Stosowanej 19.03.2015 Łódź 1 Obsługa procesów We-Wy Biblioteki standardowe Obszerny
Bardziej szczegółowo4.1 Napisz kod, w którym definiujesz, tworzysz oraz uruchamiasz wątki z uŝyciem klas java.lang.thread oraz java.lang.runnable.
WĄTKI 4.1 Napisz kod, w którym definiujesz, tworzysz oraz uruchamiasz wątki z uŝyciem klas java.lang.thread oraz java.lang.runnable. 4.2 Opisz stany w jakich wątek moŝe się znajdować oraz opisz sytuacje,
Bardziej szczegółowoWspółbieżność w Javie
Wielowątkowość (obsługa wątków) Tworzenie wątków Stany wątków i ich zmiana Demony Grupy wątków Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych pakiet java.util.concurrent
Bardziej szczegółowoAplikacja wielowątkowa prosty komunikator
Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host
Bardziej szczegółowoProgramowanie komputerów
Programowanie komputerów Wykład 7: Programowanie wielowątkowe w Javie dr inż. Walery Susłow Współbieżność Programy współbieżne (concurrent software) aplikacje potrafiące wykonywać kilka operacji w tym
Bardziej szczegółowoWydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego Łódź. Java podstawy języka, wykład 4 1
Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 03.12.2010 Łódź Java podstawy języka, wykład 4 1 Stosując blokady (synchronizację) Można doprowadzić do zablokowania wszystkich wątków Zakleszczenie
Bardziej szczegółowoJęzyki i Techniki Programowania II. Wykład 7. Współbieżność 1
Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Bardziej szczegółowoProgramowanie wielowątkowe. Tomasz Borzyszkowski
Programowanie wielowątkowe Tomasz Borzyszkowski Wątki a procesy Jako jeden z niewielu języków programowania Java udostępnia użytkownikowi mechanizmy wspierające programowanie wielowątkowe. Program wielowątkowy
Bardziej szczegółowoPodstawy współbieżności
Podstawy współbieżności Algorytmy i struktury danych. Wykład 6. Rok akademicki: 2010/2011 Od koncepcji współbieżności do systemów rozproszonych Współbieżnośd rozważany na poziomie koncepcyjnym sposób realizacji
Bardziej szczegółowoJava Collections Framework
Java Collections Framework Co to jest Java Collections Framework JCF Zunifikowana architektura do reprezentacji i manipulacji kolekcjami danych. Składa się z: Interfejsów Definuje abstrakcyjne typy możliwych
Bardziej szczegółowoProgramowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów
Bardziej szczegółowoWielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Uruchomienie programu powoduje stworzenie nowego procesu przez system operacyjny. Proces wykonywany program wraz
Bardziej szczegółowoWSPÓŁBIEŻNOŚĆ. MATERIAŁY:
WSPÓŁBIEŻNOŚĆ ZAGADNIENIA: procesy, wątki, synchronizacja, synchronizacja w Java 5.0 blokady, egzekutory, zbiory wątków MATERIAŁY: http://docs.oracle.com/javase/tutorial/essential/concurrency/ HTTP://USERS.UJ.EDU.PL/~CIESLA/
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna
Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy
Bardziej szczegółowoDawid Gierszewski Adam Hanasko
Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Bardziej szczegółowo6.1 Pojęcie wątku programu 6.2 Klasy Timer, TimerTask 6.3 Klasa Thread 6.4 Synchronizacja pracy wątków 6.5 Grupowanie wątków
6. Wątki 6.1 Pojęcie wątku programu 6.2 Klasy Timer, TimerTask 6.3 Klasa Thread 6.4 Synchronizacja pracy wątków 6.5 Grupowanie wątków W. Kasprzak: Programowanie zdarzeniowe 6-1 6.1 Wątki programu 1) Pojęcie
Bardziej szczegółowoWspółbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Bardziej szczegółowoProgramowanie równoległe i rozproszone. W1. Wielowątkowość. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone W1. Wielowątkowość Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np.
Bardziej szczegółowoKOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY
KOLEKCJE JAVY API: NAJPROSTSZE PODSTAWY I. TABLICE, CZYLI PODSTAWOWY RODZAJ KOLEKCJI: ARRAYS Wady i zalety 1. (Na rozgrzewkę) Zdefiniuj dwie klasy w programie (mogą być nawet puste na nasze potrzeby).
Bardziej szczegółowoKurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Bardziej szczegółowoAplikacje RMI. Budowa aplikacji rozproszonych. Część 2.
Aplikacje RMI Część 2 Budowa aplikacji rozproszonych http://java.sun.com/j2se/1.5.0/docs/guide/rmi/socketfactory/index.html I. Implementacja gniazd dziedziczących po Socket i ServerSocket oraz produkcji
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 4, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 3 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
Bardziej szczegółowoProgramy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.
Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Bardziej szczegółowoProgramowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Bardziej szczegółowoJava SE Laboratorium nr 7. Temat: Kolekcje
Java SE Laboratorium nr 7 Temat: Kolekcje 1 1. Definicja i idea Często w programach zachodzi potrzeba przechowywania w pamięci nieznanej z góry liczby elementów. Możliwość taką dostarczają tzw. kontenery
Bardziej szczegółowoProgramowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Kolekcje Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. X Jesień 2011 1 / 24 Kolekcje Interfejsy Implementacje Algorytmy Marketspeak
Bardziej szczegółowoJava niezbędnik programisty spotkanie nr 8. Kolekcje c.d.
Java niezbędnik programisty spotkanie nr 8 Kolekcje c.d. 1 Kontenery (rysunek pożyczony z Thinkin in Java ed. 3) Legenda: kreski-interfejsy kropki-kl. Abstr. 2 Przykład static Collection fill(collection
Bardziej szczegółowoPlatformy Programistyczne Podstawy języka Java
Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo
Bardziej szczegółowo1. Co można powiedzieć o poniższym kodzie (zakładając, że znajduje się on w jednym pliku A.java)?
1. Co można powiedzieć o poniższym kodzie (zakładając, że znajduje się on w jednym pliku A.java)? public class A { public int i; { i++; System.out.print(i); public static void main(string[] args) { A a1
Bardziej szczegółowo1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);
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); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania
Bardziej szczegółowoStrumienie, pliki. Sortowanie. Wyjątki.
Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy
Bardziej szczegółowoAplikacja wielow tkowa prosty komunikator
Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 3 (część 2)
Języki i metody programowania Java INF302W Wykład 3 (część 2) Autor Dr inż. Zofia Kruczkiewicz Autor, Zofia Kruczkiewicz Języki i metody programowania Java, wykład 3, część 2 1 STRUKTURA WYKŁADU 1. Systemowe
Bardziej szczegółowoPodstawy otwartych języków programowania Przechowywanie danych
Podstawy otwartych języków programowania Przechowywanie danych Wiktor Wandachowicz Sposoby przechowywania danych Typy podstawowe Pojedyncze obiekty Tablice obiektów i tablice typów podstawowych jednowymiarowe
Bardziej szczegółowoJava. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Bardziej szczegółowoZadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.
Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane
Bardziej szczegółowoWykład 2: Podstawy Języka
Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście
Bardziej szczegółowoGUI - projektowanie interfejsów cz. II
Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny w Katowicach Wykład 2 Java Foundations Classes przyciski; pola tekstowe; panele; okna dialogowe; biblioteka Swing. Metodyka (paradygmat) programowania
Bardziej szczegółowoJAVA I SIECI. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html
JAVA I SIECI ZAGADNIENIA: URL, Interfejs gniazd, transmisja SSL, protokół JNLP. MATERIAŁY: http://docs.oracle.com/javase/tutorial/networking/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,
Bardziej szczegółowoPlatformy Programistyczne Zagadnienia sieciowe i wątki
Platformy Programistyczne Zagadnienia sieciowe i wątki Agata Migalska 27/28 maja 2014 Komunikacja sieciowa 1 Komunikacja sieciowa 2 Wiele wątków 3 Serializacja Architektura typu klient-serwer Architektura
Bardziej szczegółowoProgramowanie współbieżne Laboratorium nr 11
Programowanie współbieżne Laboratorium nr 11 Wykonywane w danym momencie programy nazwano procesami [1] - izolowanymi, niezależnie wykonywanymi programami, dla których system operacyjny przydzielał pamięć,
Bardziej szczegółowoInterfejsy w Java. Przetwarzanie równoległe. Wątki.
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
Bardziej szczegółowoKurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016
Wykład 10 05 maja 2016 Biblioteka wejścia/wyjścia (Input/Output) import java.io.*; Umożliwia przechowywania danych na nośniku zewnętrznym Dane moga być wysyłane do plików, na drukarkę, do bufora pamięci,
Bardziej szczegółowoJava: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Bardziej szczegółowo1 Klasa File. 2 Writer. Programowanie w j zyku Java - Adam Krechowicz. Klasa File zapewnia podstawowe operacje na plikach
Programowanie w j zyku Java - Adam Krechowicz 1 Klasa File Klasa File zapewnia podstawowe operacje na plikach import java.io.file; public class FileTest { File f = new File("/home/adam/abc.txt"); f.createnewfile();
Bardziej szczegółowoStrumienie i serializacja
Strumienie i serializacja Prezentacja dostępna na Syriuszu: http://sirius.cs.put.poznan.pl/~inf80156 Klasy: InputStream, OutputStream, Reader i Writer W Javie hierarchia strumieni oparta jest o cztery
Bardziej szczegółowoJAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt
JAVA Pliki - zapis i odczyt Opracował: Andrzej Nowak Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Strumienie wejścia i wyjścia Strumienie wejścia
Bardziej szczegółowoJava: interfejsy i klasy wewnętrzne
Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania
Bardziej szczegółowoKurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Bardziej szczegółowoMetody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany
Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany plik. boolean exists() sprawdza czy plik o zadanej nazwie
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowo1 Atrybuty i metody klasowe
1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich
Bardziej szczegółowoProgramowanie współbieżne Wykład 5. Rafał Skinderowicz
Programowanie współbieżne Wykład 5 Rafał Skinderowicz Monitory motywacje Mechanizmy synchronizacji takie jak blokady (zamki) semafory pozwalają efektywnie rozwiązywać dostępu do współdzielonych zasobów,
Bardziej szczegółowoMultimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Bardziej szczegółowoTworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 2 Java Collections Framework Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku
Bardziej szczegółowoWykład 8: Obsługa Wyjątków
Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez
Bardziej szczegółowoProgramowanie rozproszone w języku Java
Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz
Bardziej szczegółowoKolekcje. object that groups multiple elements into a single unit
Kolekcje object that groups multiple elements into a single unit W wielu programach deklaracje typu: MyObject myreference; są uprawnione, jednak często zwłaszcza przy bardziej skomplikowanych programach
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 3 (część 1)
Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,
Bardziej szczegółowo1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)? public static void test1() { Object[] o = new Object[] { "1", "2", "3" ; List l = new ArrayList(Arrays.asList(o));
Bardziej szczegółowoInterfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Bardziej szczegółowoProgramowanie w Javie- wykład 11 Kolekcje (listy)
1 Programowanie w Javie- wykład 11 Kolekcje (listy) Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki
Bardziej szczegółowoObiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1
Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie
Bardziej szczegółowoWSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy Pojęcie klasy Program napisany w języku Java składa się ze zbioru klas. Każda klasa zawiera
Bardziej szczegółowo