Programowanie wielowątkowe: podstawowe koncepcje, narzędzia w Javie. J. Starzyński, JiMP2, rok akad. 2005/2006
|
|
- Karolina Krajewska
- 4 lat temu
- Przeglądów:
Transkrypt
1 Programowanie wielowątkowe: podstawowe koncepcje, narzędzia w Javie J. Starzyński, JiMP2, rok akad. 2005/2006
2 Tematyka Wprowadzenie Podstawowe pojęcia Tworzenie i uruchamianie wątków Zatrzymywanie wątków Współdzielenie pamięci synchronizacja Komunikacja pomiędzy wątkami Hierarchie i priorytety wątków
3 Wprowadzenie Większość programów działa w środowiskach sekwencyjnych, gdzie procesor wykonuje ciąg instrukcji jedna po drugiej. Wiele programów wymaga jednak równoległego wykonywania więcej niż jednego ciągu operacji. Taką równoległość symuluje się przez cykliczne przełączanie procesora.
4 Wprowadzenie, c.d. Proces to samodzielnie wykonujący się program z własną przestrzenią adresową. Wielozadaniowy system operacyjny jest w stanie uruchomić jednocześnie wiele procesów. Każdy z nich może działać niezależnie od innych, a system przydziela każdemu pewien przedział czasu procesora. Wątek to niezależne podzadanie w ramach procesu. Może współdzielić pamięć z innymi wątkami.
5 Wprowadzenie, c.d. W Javie można tworzyć wątki jako rozdzielne sekwencje strowania. Do czego się to przydaje? sterowanie obsługa urządzeń programowanie grafiki interakcyjnej programowanie równoległe i rozproszone while( 1 ) { t1= gettemperature( sensor1 ); t2= gettemperature( sensor2 ); t3= gettemperature( sensor3 ); p1= getpressure( sensor5 ); p2= getpressure( sensor6 ); if( t1 > TMAX t2 > TMAX ) stopheater( h1 ); if( t1 < t2 ) switchheater( h2 ); if( t3 > TMAX && p1 > PMAX ) openvalve( );
6 Wprowadzenie, c.d. Model odsłuchowy while( n_nodes > 4 ) { check_sharp_edges( &n_nodes, nodes, x, y, np, nop, ne ); if( n_nodes < 5 ) break; if( userinput() ) /* sprawdzamy, czy uzytkownik sie nie znudzil */ break; find_edge_seq( &n_nodes, nodes, x, y, np, nop, ne, &l_seq, &ptr ); if( userinput() ) /* sprawdzamy, czy uzytkownik sie nie znudzil */ break; if( l_seq > 1 ) close_edge_seq( &n_nodes, nodes, x, y, np, nop, ne, &l_seq, &ptr ); else catalizer( &n_nodes, nodes, x, y, np, nop, ne ); if( n_nodes < 5 ) break; if( userinput() ) /* sprawdzamy, czy uzytkownik sie nie znudzil */ break; if( userinput() ) /* uzytkownik sie znudzil */ processuserinput();
7 Wprowadzenie, c.d. Model zdarzeniowy int kbd_listener( int key_pressed ) { if( key_pressed == CTRL_C ) ask_if_really_stop(.); register_listener( kbd_listener ); while( n_nodes > 4 ) { check_sharp_edges( &n_nodes, nodes, x, y, np, nop, ne ); if( n_nodes < 5 ) break; find_edge_seq( &n_nodes, nodes, x, y, np, nop, ne, &l_seq, &ptr ); if( l_seq > 1 ) close_edge_seq( &n_nodes, nodes, x, y, np, nop, ne, &l_seq, &ptr ); else catalizer( &n_nodes, nodes, x, y, np, nop, ne );
8 Tworzenie wątków metoda A Klasę-wątek możemy utworzyć rozszerzając szkieletową klasę Thread Jeżeli wątek ma coś robić, to musimy w naszej klasie utworzyć metodę public void run() Ta metoda jest uruchamiana przez wywołanie metody start. Wątek,,żyje tak długo, jak długo działa jego metoda run
9 Tworzenie wątków przykład A class W1 extends Thread { String name; long delay; long nrepet; W1( String w, long dt, long n ) { name= w; delay= dt; nrepet= n; public void run() { try { for( int i= 0; i < nrepet; i++) { System.out.print( name + " " ); sleep( delay ); catch( InterruptedException 3 e ) { System.out.println( "Exiting " + name + "\n" ); return;
10 Tworzenie wątków przykład A, c.d. class W1Test { public static void main( String args[] ) throws InterruptedException { for( int i= 0; i < args.length; i += 3 ) new W1( args[i], Long.valueOf( args[i+1] ).longvalue(), Long.valueOf( args[i+2] ).longvalue() ).start();
11 Tworzenie wątków metoda B Klasę-wątek możemy utworzyć implementując interfejs Runnable Pozwala to utworzyć klasę-wątek, która rozszerza jakąś klasę, która nie jest wątkiem Podobnie, jak w metodzie A musimy w naszej klasie utworzyć metodę public void run() Klasę implementującą Runnable uruchamiamy w nieco bardziej skomplikowany sposób
12 Tworzenie wątków przykład B class W2 implements Runnable { String name; long delay; long nrepet; W2( String w, long dt, long n ) { name= w; delay= dt; nrepet= n; public void run() { try { for( int i= 0; i < nrepet; i++) { System.out.print( name + " " ); Thread.sleep( delay ); catch( InterruptedException e ) { System.out.println( "Exiting " + name + "\n" );
13 Tworzenie wątków przykład B, c.d. class W2Test { public static void main( String args[] ) throws InterruptedException { for( int i= 0; i < args.length; i += 3 ) { Runnable r= new W2( args[i], Long.valueOf( args[i+1] ).longvalue(), Long.valueOf( args[i+2] ).longvalue() ); new Thread( r ).start();
14 Zatrzymywanie wątków Program działa, dopóki działa choć jeden z jego wątków (z wyj. wątków-demonów). Każdy program ma przynajmniej jeden wątek jest nim metoda main uruchamianej klasy Wątek można zatrzymać komunikując się z jego metodą run tak jest najlepiej Można też zatrzymać wątek wysyłając mu przerwanie (wyjątek InterruptException) W starej Javie można też było wywołać metodę stop (zgłasza wyjątek ThreadDeath), ale jest to sposób przestarzały (niebezpieczny)
15 Zatrzymywanie wątków class Wx extends Thread { public boolean canrun; public void start() { canrun= true; super.start(); public void run() { while( canrun ) { // sprzątanie class WxUser { Wx t= new Wx(); t.start(); if( t_should_stop ) t.canrun = false;
16 Możliwe stany wątku Utworzony, ale nie uruchomiony Uruchomiony Zakończony (koniec run(), stop(), destroy()) Zablokowany sleep() suspend(). resume() yield() wait() we/wy czeka na zwolnienie monitora
17 Problem: dzielony dostęp do danych Wątek Kasa: stankonta = stankonta + wpłata; Wątek Bankomat: stankonta = stankonta - wypłata; stankonta rejestr stankonta rejestr rejestr += wpłata rejestr -= wpłata rejestr stankonta rejestr stankonta Stan konta nie uwzględnia wpłaty!
18 Synchronizacja Każdy obiekt zawiera monitor blokadę, która jest automatycznie jego częścią. Można wykorzystać ją (po to jest) do blokowania obiektu. Pierwszym sposobem jest deklarowanie metod, które powinny blokować obiekt jako synchronized Drugim sposobem jest użycie bloków synchronizowanych
19 Synchronizacja, c.d. class SP { private double x,y; SP( ) { x= 0; y= 0; public synchronized double x() { return x; public synchronized double y() { return y; public synchronized void move( double dx, double dy ) { x += dx; y += dy; public synchronized void newx( double x ) { this.x = x; public synchronized void newy( double y ) { this.y = y; public synchronized void movetoward( SP other, double a ) { this.x += ( other.x() - this.x ) * a; this.y += ( other.y() - this.y ) * a;
20 Synchronizacja, c.d. class SP { private double x,y; SP( ) { x= 0; y= 0; public synchronized double x() { return x; public synchronized double y() { return y; public synchronized void move( double dx, double dy ) { x += dx; y += dy; public synchronized void newx( double x ) { this.x = x; public synchronized void newy( double y ) { this.y = y; public synchronized void movetoward( SP other, double a ) { this.x += ( other.x() - this.x ) * a; this.y += ( other.y() - this.y ) * a;
21 Synchronizacja, c.d. Trzeba pamiętać o synchronizowaniu wszystkich metod, które mają dostęp do wrażliwych pól. Metoda niesynchronizowana nie sprawdza blokady. Każda klasa ma jeden monitor statyczny, który jest używany do synchronizowania metod statycznych. Synchronizowanie spowalnia program: czas wywołania metod synchronizowanych jest kilkakrotnie (B.Eckel 4 razy) dłuższy, niż metod niesynchronizowanych.
22 Blok synchronizowany synchronized ( syncobject ) { // kod synchronizowany public synchronized void run () { while( true ) { counter++; l1.settext( Integer.toString( counter ); try { sleep( delay ); catch( InterruptedException e ) { System.err.println( name + interrupted ); Synchronizacja, c.d. public void run () { while( true ) { synchronized( this ) { counter++; l1.settext( Integer.toString( counter ); try { sleep( delay ); catch( InterruptedException e ) { System.err.println( Interrupted ); /* Move polygon by [ dx, dy ] */ public static void move( Point[] polygon, double dx, double dy ) { synchronized( polygon ) { for( int i= 0; i < polygon.length; i++ ) polygon[i].move( dx, dy );
23 Synchronizacja -- zakleszczenie Wątek A p1.movetoward( p2, 0.25 ) blokada p1 Wątek B p2.movetoward( p1, 0.2 ) blokada p2 oczekiwanie na p2.. oczekiwanie na p1. Zakleszczenie może mieć postać bardziej złożoną zamkniętego łańcucha wątków czekających jeden na drugi. Java nie zawiera narzędzi, które pomagałyby unikać zakleszczenia trzeba odpowiednio projektować program. Metody stop(), suspend(), resume() są niezalecane właśnie ze względu na ryzyko zakleszczenia przy ich stosowaniu.
24 Obiekty volatile class Test { static int i = 0, j = 0; static void one() { i++; j++; static void two() { System.out.println("i=" + i + " j=" + j); class Test { static int i = 0, j = 0; static synchronized void one() { i++; j++; static synchronized void two() { System.out.println("i=" + i + " j=" + j); class Test { static volatile int i = 0, j = 0; static void one() { i++; j++; static void two() { System.out.println( "i=" + i + " j=" + j); percentdone= 0; while( true ) { g.drawstring( Double( percentdone ).tostring() + "%", 50,25 ); Thread.sleep( 500 );
25 Komunikacja między wątkami Wykorzystujemy do niej monitor obiektu i metody wait(), notify(), notifyall() Metody wait(), notify(), notifyall() powinny być wywoływane z kodu synchronizowanego, dla swojej własnej blokady(). wait() zwalnia blokadę obiektu i czeka na wywołanie notify() lub notifyall() związane z tą blokadą Są wersje wait() odmierzające czas i czekające bezwarunkowo. notify() budzi jeden z wątków (niewiadomo który) czekających na monitor danego obiektu. Metody zgłaszają IllegalMonitorStateException, jeśli wątek wywołujący nie jest właścicielem blokady (monitora).
26 Synchronizacja w czasie public class IndividualFitness extends Thread { // tu definicja klasy public class GA { // public void generation() { oldpopulation= newpopulation; IndividualFitness [] FitPool= new IndividualFitness[ populationsize ]; for( int i= 0; i < populationsize; i++ ) { newpopulation[i]= new Individual( oldpopulation ); FitPool[i]= new individualfitness( newpopulation[i] ); FitPool[i].start(); for( int i= 0; i < populationsize; i++ ) { FitPool[i].join(); newpopulation[i].setfitness( FitPool.result() ); populationstatistics( newpopulation ); //.. //..
27 Synchronizacja w czasie import java.util.stack; public class SQueue { private Stack q; public SQueue() { q = new Stack(); public synchronized void insert( Object o ) { q.push( o ); notify(); // powiadom watek pobierajacy public synchronized Object get() throws InterruptedException // z wait() { while( q.empty() ) wait(); // czekaj az element sie pojawi return q.pop();
28 Synchronizacja w czasie class SQFeeder extends Thread { int start; int delay; int nrepet; SQueue sq; SQFeeder( int s, int n, int dt, SQueue q ) { start= s; delay= dt; nrepet= n; sq= q;. public void run() { try { for( int i= start; i < start+nrepet; i++) { sq.insert( new Integer( i ) ); sleep( delay ); catch( InterruptedException e ) { System.out.println( "SQFeeder interrupted\n" ); return;
29 Synchronizacja w czasie class SQEater extends Thread { SQueue sq; SQEater( SQueue q ) { sq= q; public void run() { try { while( true ) System.out.println( sq.get() ); catch( InterruptedException e ) { System.out.println( "SQEater interrupted\n" ); return;
30 Synchronizacja w czasie public class SQTester { public static void main( String [] args ) throws InterruptedException // ze sleep() { SQueue q= new SQueue(); SQFeeder f= new SQFeeder( 0, 20, 250, q ); SQEater e= new SQEater( q ); f.start(); // start feeder Thread.sleep( 4000 ); // wait 4 s. e.start(); // start eater - it should print 15-0 immediately, // then with 250 ms. pauses f.join(); // wait for feeder to finish e.interrupt(); // finish eater e.join(); // let him stop
31 Priorytety wątków Każdy wątek ma przyporządkowany określony priorytet - liczbę całkowitą z zakresu od Thread.MIN_PRIORITY do Thread.MAX_PRIORITY i standardową wartością Thread.NORM_PRIORITY. Początkowo wątek dziedziczy priorytet od swojego rodzica. Wartość priorytetu można odczytać przy pomocy metody getpriority i zmienić w dowolnej chwili przy pomocy setpriority. Priorytety służą do szeregowania wątków.
32 public static void setthreadspriority( ) { Priorytety wątków Thread tenwatek= Thread.currentThread(); // pobierz biezacy watek ThreadGroup tagrupa= tenwatek.getthreadgroup(); // i jego grupe Thread[] watki = new Thread[ tagrupa.activecount() + 50 ]; // activecount tylko estymuje (cos moglo umrzec i cos sie urodzic) tagrupa.enumerate( watki ); // pakujemy watki do tablicy tenwatek.setpriority( Thread.MAX_PRIORITY ); // mogl nie dostac MAX_PRIORITY, bo ograniczenia dla grupy to uniemozliwialy int otherpriority= tenwatek.getpriority() - 1; // ustawiamy innym mniejszy for( int i= 0; i < watki.length; i++ ) if( watki[i]!= null && watki[i]!= tenwatek ) watki[i].setpriority( otherpriority ); // ale potem cos innego mogloby zwiekszyc priorytet ktoregos z tych watkow //skuteczniej: tagrupa.setmaxpriority( otherpriority );
33 Grupy wątków Wątki podzielone są na grupy, które tworzą hierarchie (to znaczy, że wątek dziedziczy grupę od rodzica, ale może tworzyć nowe podgrupy w ramach swojej grupy). Do tworzenia hierarchii wątków służy klasa ThreadGroup. Obok regulacji bezpieczeństwa klasa ta umożliwia grupowe sterowanie wątkami i ich priorytetami.
34 Grupy wątków public static void stopthreads( ) { Thread tenwatek= Tread.currentThread(); // pobierz biezacy watek ThreadGroup tagrupa= tenwatek.getthreadgroup(); // i jego grupe Thread[] watki = new Thread[ tagrupa.activecount() + 50 ]; // activecount tylko estymuje (cos moglo umrzec i cos sie urodzic) tagrupa.enumerate( watki ) // przerywamy wszystkie z wyjatkiem biezacego for( int i= 0; i < watki.length; i++ ) if( watki[i]!= null && watki[i]!= tenwatek ) watki[i].interrupt(); // czekamy az stana for( int i= 0; i < watki.length; i++ ) if( watki[i]!= null && watki[i]!= tenwatek ) { try { watki[i].join(); // join zglasza InterruptedException catch( InterruptedException e ) { // zlekcewaz - czekamy na "potomstwo" // zostal tylko tenwatek
Wą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ół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ółowoWspół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ół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ół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ół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ół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ół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ół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 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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoPrzetwarzanie równoległe i współbieżne
Wątki Threads Wątki (Threads) Concurrent programming is like stepping into an entirely new world and learning a new programming language!!! (grząski grunt) Unikaj jeśli możesz rozwiazać problem! Implementacja
Bardziej szczegółowoWątki (Threads) Potrzeby. Przetwarzanie równoległe i współbieŝne. Cechy programowania wątkowego. Concurrent programming is like
Wątki (Threads) Concurrent programming is like stepping into an entirely new world and learning a new programming language!!! (grząski grunt) Unikaj jeśli moŝesz! Oparte są zwykle na wielozadaniowym SO
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 współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 1 dr inż. Literatura ogólna Ben-Ari, M.: Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa, 2009. Czech, Z.J:
Bardziej szczegółowoProgramowanie współbieżne Wykład 2. Rafał Skinderowicz
Programowanie współbieżne Wykład 2 Rafał Skinderowicz Program współbieżny a sekwencyjny Program zapis algorytmu, ciąg instrukcji do wykonania przez procesor: statyczny sekwencja instrukcji przekształcających
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ół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ół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ół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ół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ółowoProgramowanie współbieżne Laboratorium nr 12
Programowanie współbieżne Laboratorium nr 12 Uwaga!!! Wyniki uruchomionych programów mogą zależeć od sprzętu (ilość procesorów, rdzeni itp.), systemu operacyjnego, obciążenia systemu operacyjnego, ilości
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ół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ół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ółowoW Javie wątki są obiektami zdefiniowanymi za pomocą specjalnego rodzaju klas.
WspółbieŜność W programowaniu sekwencyjnym, kaŝdy program ma początek, sekwencje instrukcji do wykonania i koniec. W kaŝdym momencie działania programu moŝemy wskazać miejsce, w którym znajduje się sterowanie.
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
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ół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ółowoSystemy Rozproszone - Ćwiczenie 4
Systemy Rozproszone - Ćwiczenie 4 1 Synchronizacja wątków: myjnia samochodowa Poniżej znajduje się przykład ilustrujący klasyczny problem synchronizacji wątków. Obiekt klasy Car jest współdzielony przez
Bardziej szczegółowoWielowątkowość 1. Marcin Orchel. AGH University of Science and Technology in Poland 1 / 58
Wielowątkowość 1 Marcin Orchel AGH University of Science and Technology in Poland 1 / 58 Section 1 Agenda Agenda 2 / 58 1 Współbieżność 2 Synchronizacja 3 Zbiory oczekujące Agenda 3 / 58 Section 2 Współbieżność
Bardziej szczegółowo1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();
1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {; static public void m2() {; void abstract m3(); default static void m4() {; a) Poprawnie zadeklarowano metodę m1() b) Poprawnie
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ółowoWykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
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ółowoZaawansowane programowanie w C++ (PCP)
Wykład 10 - boost Thread. 8 czerwca 2007 Równoległość bardzo wolna reakcja człowieka wolne urządzenia wejścia - wyjścia (np. drukarki) bardzo szybkie procesory można przeprowadzać obliczenia podczas obsługi
Bardziej szczegółowoOperatory. Składnia. Typy proste. Znaki specjalne
Składnia Operatory komentarze // /* */ /** */ litery A.. Z, a.. z, \udddd dddd>00c0 identyfikatory pierwszy znak= _, lub litera, następne dodatkowo 0.. 9 liczby dziesiętne Ddddd (D 0) liczby ósemkowe 0dddd
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ół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ółowoProgramowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Bardziej szczegółowoProgramowanie w Sieci Internet. Python: Wątki. Kraków, 12 grudnia 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Python: Wątki Kraków, 12 grudnia 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Wątki akt pierwszy, kilka przydatnych funkcji Lib/threading.py modół pozwalający
Bardziej szczegółowoSemafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post
Bardziej szczegółowoSemafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
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 i projektowanie obiektowe
Programowanie i projektowanie obiektowe Przykład symulacji Paweł Daniluk Wydział Fizyki Jesień 2012 P. Daniluk (Wydział Fizyki) PO w. XII Jesień 2012 1 / 18 Symulacja sieci kolejowej A B C Zasady Na torze
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ółowoSystemy Rozproszone - Ćwiczenie 6
Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez
Bardziej szczegółowo1. Co można powiedzieć o poniższym kodzie?
1. Co można powiedzieć o poniższym kodzie? void m(int a) { int m(string s){return Integer.parseInt(s); String m(int a){ return Integer.toString(a); a) Jego kompilacja powiedzie się b) Jego kompilacja nie
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ółowoPrzykłady interfejsu TCP i UDP w Javie
Przykłady interfejsu TCP i UDP w Javie W Javie interfejsy TCP i UDP znajdują się w pakiecie java.net http://docs.oracle.com/javase/6/docs/api/java/net/packagesummary.html 1 Przykład interfejsu UDP Protokół
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ółowoModel pamięci. Rafał Skinderowicz
Model pamięci Rafał Skinderowicz Czym jest model pamięci Model pamięci dotyczy programów współbieżnych W programie współbieżnym może się zdarzyć, że dany wątek nie będzie widział od razu wartości zmiennej
Bardziej szczegółowoPolimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Bardziej szczegółowo7 Pewne uzupełnienia Przepływ sterowania Układacze... 6
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 7 Pewne uzupełnienia 5 7.1 Przepływ sterowania......................... 5 7.2 Układacze...............................
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Bardziej szczegółowoSystemy operacyjne. Zajęcia 11. Monitory
Systemy operacyjne. Zajęcia 11. Monitory 1. Monitor to mechanizm zamykający całą pamięć wspólną i synchronizację w pojedynczym module. 2. Monitor posiada całą pamięć wspólną jako część 'prywatną': dostępu
Bardziej szczegółowoTechnologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
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ółowoAplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java
Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment
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ółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
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ółowoJava EE produkcja oprogramowania
Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 4 Warszawa, 2016Z 2 Pętle, typ tablicowy, usługi czasu i kalendarza 3 Pętla while 1/3 Instrukcja pętli umożliwia
Bardziej szczegółowoGeneratory. Michał R. Przybyłek
Generatory Michał R. Przybyłek 1 Wstęp Generator to potencjalnie nieskończony, leniwie obliczany, ciąg wartości. W zależności od tego, która ze stron decyduje o wygenerowaniu nowej wartości wyróżniamy
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ółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 9: Wyjątki 5/5/2013 S.Deniziak:Programowanie obiektowe - Java 1 Co to jest wyjątek? błąd wykonania: InputFile.java:8: Warning: Exception java.io.filenotfoundexception must
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ółowoDokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
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ółowoPodejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne
Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne import javax.swing.*; import java.util.*; public class Napis4 { String wynik = ""; static int ile_obiektow
Bardziej szczegółowoPodstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Bardziej szczegółowoPolimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Bardziej szczegółowoLaboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Bardziej szczegółowoWIELOWĄTKOWOŚĆ. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska
WIELOWĄTKOWOŚĆ Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Wydajność 2 Do 2005 roku wydajność komputerów poprawiano zwiększając częstotliwość taktowania procesora 1995: Pentium
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ół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ółowoZofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1
PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,
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ółowoKLASY, INTERFEJSY, ITP
KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/
Bardziej szczegółowoJava SE, Laboratorium nr 8 Wątki
Java SE, Laboratorium nr 8 Wątki Wątki w Jawie umożliwiają współbieżność operacji. Wątki umożliwiają równoległe wykonywanie instrukcji. Wątki wymagają mniej zasobów niż osobne procesy. Wynika to z tego,
Bardziej szczegółowoTworzenie i wykorzystanie usług
Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi
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ółowoRównolegªo± w Javie w tki.
Równolegªo± w Javie w tki. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 20.04.2017 Wielow tkowo± w Javie Równolegªo± w Javie oparta jest na w tkach
Bardziej szczegółowoAplikacje RMI Lab4
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych
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ółowo