c Radosªaw Klimek Vincent Van GOGH: M»czyzna pij cy li»ank kawy J zyk programowania Java

Wielkość: px
Rozpocząć pokaz od strony:

Download "c Radosªaw Klimek Vincent Van GOGH: M»czyzna pij cy li»ank kawy J zyk programowania Java"

Transkrypt

1 J zyk programowania JAVA c Vincent Van GOGH: M»czyzna pij cy li»ank kawy

2 W tki Proces to wykonuj cy si program wraz z dynamicznie przydzielanymi mu przez system zasobami (np. pami ci operacyjn, zasobami plikowymi). Ka»dy proces ma wªasn przestrze«adresow. W tek to sekwencja dziaªa«, która wykonuje si w kontek±cie danego procesu (programu) Ka»dy proces ma co najmniej jeden wykonuj cy si w tek. W systemach wielow tkowych proces mo»e wykonywa równolegle (teoretycznie) wiele w tków, które wykonuj si w jednej przestrzeni adresowej procesu.

3 Programowanie wielow tkowe Cech charakterystyczn programowania wielow tkowego jest to,»e tworzone programy dzieli si na wieksz liczb procesów, które mog by wykonywane równocze±nie. Wiele zada«wyst puj cych w interakcyjnych programach jest wykonywanych wspóªbie»nie. Zadania, które mog by wykonywane wspóªbie»nie to np: odczytywanie i zapisywanie plików korzystanie z zasobów sieciowych reagowanie na dane wprowadzane przez u»ytkownika wykonywanie skomplikowanych trwaj cych dªugo oblicze«wy±wietlanie animacji i interfejsów u»ytkonika

4 Wkorzystanie w tków Reasumuj c, w tki mo»na wykorzysta w wielu sytuacjach: Wszelkie obliczenia, które mog zablokowa interfejs u»ytkownika powinny by wykonywane asynchronicznie Animacje, które powinny by przetwarzane niezale»nie od interfejsu u»ytkownika Pobieranie danych z internetu (zamiast przetwarza strony internetowe jedna po drugiej mo»na poª czy si np. z 10 jednocze±nie) W ogólno±ci wszystkie operacje wej±cia/wyj±cia, zapis i odczyt plików, czy baz danych Zªo»one obliczenia, które mog by podzielone na mniejsze podzadania I wiele innych

5 Jednow tkowa p tla zdarze«w systemach jednow tkowych stosowane jest rozwi zanie zwane p tl zdarze«z odpytywaniem. W takim modelu istnieje jedna p tla niesko«czona, w której wykonywane s kolejne w tki pobierane z kolejki procesów. Poszczególne w tki wykonywane s przez odpowiadaj ce im procedury obsªugi zdarze«. Do zako«czenia bie» cego w tku, nie mo»e by w systemie podj te»adne inne dziaªanie.

6 Systemy wielow tkowe Równolegªo± dziaªania w tków osi gana jest przez mechanizm przydzielania czasu procesora poszczególnym wykonuj cym si w tkom. Ka»dy w tek uzyskuje dost p do procesora na kwant czasu, po czym przekazuje procesor innemu w tkowi. Zmiana w tku wykonywanego przez procesor mo»e dokonywa si na zasadzie: wspóªpracy w tek sam decyduje, kiedy odda czas procesora innym w tkom, wywªaszczania o dost pie w tków do procesora decyduje systemowy zarz dca w tków, który przydziela w tkowi kwant czasu procesora, po upªywie którego odsuwa w tek od procesora i przydziela kolejny kwant czasu innemu w tkowi. Java jest j zykiem wieloplatformowym, a ró»ne systemy operacyjne stosuj ró»ne mechanizmy udost pniania w tkom procesora. Programy wielow tkowe powinny by tak pisane, by dziaªaªy zarówno w ±rodowisku wspóªpracy jak i wywªaszczania.

7 Systemy wielow tkowe W sytemie wielow tkowym wykorzystuje si fakt,»e wi kszo± czasu wykonywania w tku to czas oczekiwania na dost pn ± zasobu. Je»eli wszystkie procesy s niezale»nymi w tkami, a system potra przeªacza si pomi dzy w tkiem oczekuj cym na dany zasób, a w tkiem gotowym do dziaªania, to w tym samym czasie mo»na wykona znacznie wi cej dziaªa«. W Javie nie ma pojedy«czej p tli zdarze«. Je»eli jeden w tek np.: odczytuje dane z sieci czeka na dane wprowadzane przez u»ytkownika albo wy±wietla animacje, nie wykonuj c»adnych innych dziaªa«to pozostaªe w tki mog dziaªa bez jakichkolwiek przerw

8 Systemy wielow tkowe Bardzo wa»ne jest równie» to,»e je±li uruchomimy jeden po drugim np. 10 w tków, to wcale nie b d one wykonywaªy si sekwencyjnie jeden po drugim, je±li sami o to nie zadbamy. Je±li jakie± zadanie nie zd»y si wykona w czasie, który zostaª dla niego przydzielony, to mo»e ono zosta przerwane na pewien czas.

9 Tworzenie w tków W tki w Javie mo»na tworzy na kilka sposobów, poprzez: jawne rozszerzenie klasy Thread stworzenie klasy implementuj cej interfejs Runnable, który mo»e by wykonany w osobnym w tku (Thread) stworzenie klasy implementuj cej interfejs Callable, który mo»e by wykonany w osobnym w tku (Thread) Preferowane jest stosowanie rozszerze«interfejsów, poniewa» daj one du»o lepsz elastyczno±, szczególnie je±li dojdziemy do momentu szeregowania w tków, utrzymywania staªej puli w tków wykonuj cych si w tle. Interfejsy Runnable i Callable s do siebie bardzo podobne, jednak najwa»niejsz ró»nic jest to,»e Callable mo»e zwróci w wyniku pewn warto±, natomiast w przypadku Runnable nie ma takiej mo»liwo±ci.

10 Klasa Thread Podobnie jak wszystkie poj cia Javy, w tki reprezentowane s przez obiekty okre±lonej klasy. W tki reprezentowane s przez obiekty klasy Thread, która zawiera wszystkie metody do zarz dzania w tkami. Klasa Thread jest jedynym elementem Javy pozwalaj cym na zarz dzanie w tkami. Ka»dy w tek w pewnm momencie zaczyna si, wykonuje okre±lon liczb dziaªa«, po czym ko«czy si.

11 Metody klasy Thread Metody klasy Thread dzielimy na Metody statyczne wywoªuje si je bezpo±rednio z nazw klasy: Thread. c u r r e n t T h r e a d ( ) Metody zwi zane z obiektami nie s metodami statycznymi, mo»na z nich korzysta dopiero po utworzeniu obiektu klasy Thread.

12 Metody statyczne zestawienie Metoda currentthread() zwraca obiekt klasy Thread reprezentuj cy bie» cy w tek. Metoda yield() poleca systemowi czasu przebiegu Javy przerwanie wykonywania bie»acego w tku i przekazanie procesora nast pnemu oczekuj cemu w tkowi. Jest to jedyny sposób uzyskania pewno±ci,»e w tki o najni»szych priorytetach b d kiedykolwiek wykonane. Metoda sleep(int n) poleca systemowi czasu przebiegu u±pienie bie»acego w tku na n milisekund. Po upªywie tego czasu w tek b dzie gotowy do dziaªania.

13 Metody zwi zane z obiektami zestawienie Trzy podstawowe metody klasy Thread: Metoda start() poleca utworzenie i uruchomienie nowego w tku. Jego dziaªanie polega na wykonaniu metody run() nale» cej do obiektu wskazanego podczas tworzenia danego w tku. Niedozwolone jest wielokrotne wywoªywanie tej metody dla tego samego w tku. Metoda run() Jest to zasadnicza cze± ka»dego w tku. Nie nale»y ona do klasy Thread, jest to jedyna metoda interfejsu Runnable. Wywoªuje j metoda Metoda start() po poprawnym utworzeniu nowego w tku. Zako«czenie dziaªania metody run() oznacza zatrzymanie zwi zanego z ni w tku. Metoda inerrupt() umo»liwia przerwanie dziaªania w tku.

14 Inne metody klasy Thread zestawienie Metoda suspend() zawieszenie w tku Metoda resume() wznawienie wykonywania zawieszonego w tku Metoda setpriority(int p) Ustawia priorytet w tku Metoda getpriority() Pobiera i zwraca priorytet w tku Metoda setname(string name) Ustawia nazw w tku Metoda getname() Pobiera i zwraca nazw w tku Metoda stop() powoduje natychmiastowe zatrzymanie w tku. W tek przestaje istnie. i inne: wait(), notify(), notifyall(), isalive(), join()...

15 Tworzenie w tków Program korzystaj cy z wi cej ni» jednego w tku mo»emy utworzy na dwa sposoby: Bezpo±rednio poprzez dziedziczenie klasy Thread Po±rednio poprzez implementacj interfejsu Runnable.

16 Dziedziczenie klasy Thread Bezpo±rednie dziedziczenie z klasy Thread 1 c l a s s MyThread extends Thread { p u b l i c void run ( ) { } 6 } Tworzenie obiektu i uruchamianie w tku: 1 MyThread t = new MyThread ( ) ; 2 t. s t a r t ( ) ;

17 Implementacja Runnable Po±rednie poprzez implementacj interfejsu Runnable. 1 c l a s s MyThreadR implements Runnable { p u b l i c void run ( ) { } 6 } Tworzenie obiektu i uruchamianie w tku: 1 MyThreadR r = new MyThreadR ( ) ; 2 Thread t = new Thread ( r ) ; 3 t. s t a r t ( ) ; Wykorzystanie interfejsu jest szczególnie przydatne, gdy dana klasa (klasa w tku) dziedziczy ju» z innej klasy (w Javie nie mo»na dziedziczy z dwóch ró»nych klas).

18 Tworzenie i uruchamianie w tków przykªad Przykªadowa implementacja interfejsu Runnable: 1 p u b l i c c l a s s Watek1 i m p l e m e n t s Runnable { 2 p u b l i c v o i d run ( ) { 3 System. out. p r i n t l n ( " to j e s t watek i m p l e m e n t u j a c y i n t e r f e j s Runnable " ) ; 4 } 5 } Rozszerzenie klasy Thread: 1 p u b l i c c l a s s Watek2 e x t e n d s Thread { 2 p u b l i c v o i d run ( ) { 3 System. out. p r i n t l n ( " to j e s t watek r o z s z e r z a j a c y k l a s e Thread " ) ; 4 } 5 } A teraz tworzymy i uruchamiamy nasze w tki: 1 p u b l i c c l a s s Uruchom { 2 3 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 Watek1 w1 = new Watek1 ( ) ; 5 Watek2 w2 = new Watek2 ( ) ; 6 7 ( new Thread (w1 ) ). s t a r t ( ) ; 8 w2. s t a r t ( ) ; 9 10 } 11 }

19 Omówienie przykªadu Tworzymy dwa w tki w1 i w2. Pierwszy z nich to obiekt klasy implementuj cej interfejs Runnable, drugi to obiekt klasy dziedzicz cej z klasy Thread. Tutaj wida podstawow ró»nic pomi dzy obiema metodami tworzenia klas. Zaimplementowanie interfejsu wymusza stworzenie obiektu Thread, któremu jako parametr konstruktora dajemy obiekt implementuj cy Runnable. Dopiero tak utworzony obiekt posiada metod start(), która uruchamia w tek. Drugie podej±cie powoduje i» nie musimy tworzy dodatkowego obiektu. Które podej±cie jest lepsze? Oczywi±cie poprzez implementacj interfejsu Runnable poniewa»: opiera si na interfejsach co jest znacznie bardziej elastyczn metod ni» dziedziczenie. nie zaburza hierarchii klas poprzez dziedziczenie z klasy Thread.

20 Priorytety w tków Java z ka»dym w tkiem programu kojarzy priorytet, informuj cy o tym jak nale»y traktowa w tek w stosunku do innych w tków programu. Priorytet jest liczb caªkowit z zakresu od MIN_PRIORITY(1) do MAX_PRIORITY (10). Domy±lnym priorytetem jest NORM_PRIORITY (5). Ogólna zasada mówi,»e w tki o wysokich priorytech powinny by wykonywane cz ±ciej ni» w tki o niskich priorytetech. Do ustawiania priorytetu w tku sªu»y metoda: setpriority(int p).

21 Synchronizacja Tworz c w tki nale»y pami ta,»e wspóªdziel one pomi dzy sob pami i zasoby. Mo»e to prowadzi do kolizji, a te do bª dów. Bª dy spowodowane przez kolizje jest bardzo ci»ko znale¹ i usun. Je»eli dwa albo wi cej w tków ubiega si do wspóªdzielonych zasobów to musimy zapewni im synchronizacj. W Javie realizowana jest ona za pomoc wbudowanych elementów j zykowych, tzw monitorów, czyli obiektu u»ywanego jako blokady, umo»liwiaj cej wzajemne wykluczanie si w tków. W danej chwili tylko jeden w tek mo»e znajdowa si w monitorze pozostaªe s w zawieszeniu, czekaj c na jego zwolnienie.

22 Przykªad bez synchronizacji 1 p u b l i c c l a s s Uruchom { 2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 3 Watek1 w1 = new Watek1 ( ) ; 4 Watek2 w2 = new Watek2 ( ) ; 5 6 ( new Thread (w1 ) ). s t a r t ( ) ; 7 ( new Thread (w2 ) ). s t a r t ( ) ; 8 } 9 p u b l i c c l a s s Watek1 i m p l e m e n t s Runnable { 10 p u b l i c v o i d run ( ) { 11 f o r ( i n t i = 0 ; i <100000; i ++){ 12 System. out. p r i n t l n ( "W tek1" ) ; 13 } 14 } 15 } p u b l i c c l a s s Watek2 i m p l e m e n t s Runnable { 18 p u b l i c v o i d run ( ) { 19 f o r ( i n t i = 0 ; i <100000; i ++){ 20 System. out. p r i n t l n ( "W tek2" ) ; 21 } 22 } 23 } 24 } Po uruchomieniu programu oka»e si,»e przez pewien czas wypisywane s naprzemiennie oba napisy. Z tego wnosek,»e w tki wykonywane s naprzemiennie.

23 Synchronized Je»eli istnieje jedna lub wiecej metod maj cych wpªyw na wewn trzy stan obiektu w ±rodowisku wielow tkowym nale»y zastosowa mechanizm synchronizacji. Poprzez umieszczenie tych metod w blokach synchronizowanych u»ywakj c sªowa kluczowego synchronized. Ogólna posta bloku synchronizownego: 1 s y n c h r o n i z e d ( o b i e k t ) i n s t r u k c j a albo: obiekt to odwoªanie do dowolnego obiektu. instrukcja to najcz sciej instrukcja zªo»ona zawieraj ca wywoªanie jednej z metod obiektu. 1 s y n c h r o n i z e d metoda ( ) { } gdzie metoda jest synchronizowan metod.

24 Przykªad z synchronizacj 1 p u b l i c c l a s s Uruchom { 2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 3 Watek1 w1 = new Watek1 ( ) ; 4 Watek2 w2 = new Watek2 ( ) ; 5 6 ( new Thread (w1 ) ). s t a r t ( ) ; 7 w2. s t a r t ( ) ; 8 } 9 10 p u b l i c s t a t i c s y n c h r o n i z e d v o i d w y p i s z ( S t r i n g t e k s t ){ 11 f o r ( i n t i = 0 ; i <10000; i ++) 12 System. out. p r i n t l n ( i+" : "+t e k s t ) ; 13 } 14 } p u b l i c c l a s s Watek1 17 i m p l e m e n t s Runnable { 18 p u b l i c v o i d run ( ) { 19 Uruchom. wypisz ( "Watek1" ) ; 20 } 21 } p u b l i c c l a s s Watek2 24 e x t e n d s Thread { 25 p u b l i c v o i d run ( ) { 26 Uruchom. wypisz ( "Watek2" ) ; 27 } 28 } Po uruchomieniu programu nie zaobserwujemy ju» wymieszania si tekstów pochodz cych z ró»nych w tków.

25 Wyj tki Wyj tek jest to nietypowa sytuacja pojawiaj ca si podczas wykonywania programun np. wyst pienie bª du polegaj cego na próbie otwarcia pliku, który nie istnieje. Java posiada mechanizm obsªugi wyj tków. Mechanizm obsªugi wyj tków w Javie umo»liwia zaprogramowanie "wyj±cia" sytuacji krytycznych, dzi ki czemu program nie zawiesi si po wyst pieniu bª du wykonuj c ci g operacji obsªuguj cych wyj tek. Wyst pienie sytuacji wyj tkowej przerywa "normalny" tok wykonania programu.

26 Obsªuga wyj tków Czyli: Wyj tek powstaje na skutek jakiego± nieoczekiwanego bª du. Wyj tek jest zgªaszany (lub mówi c inaczej - sygnalizowany). Wyj tek jest (mo»e lub musi by ) obsªugiwany.

27 Brak jawnej obsªugi wyj tku przykªad Próba dzielenia przez zero: 1 p u b l i c c l a s s NoCatch { 2 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 3 i n t a = 1, b = 0, c = 0 ; 4 c = a/b ; 5 System. out. p r i n t l n ( c ) ; 6 } 7 } powstaªy bª d (wyj tek) spowoduje zako«czenie programu, a JVM wypisze komunikat o jego przyczynie. 1 E x c e p t i o n i n t h r e a d " main " j a v a. l a n g. A r i t h m e t i c E x c e p t i o n : / by z e r o 2 a t NoCatch. main ( NoCatch. j a v a : 6 )

28 Obsªuga wyj tków W Javie do obsªugi wyj tków sªu»y pi sªów kluczowych: try okre±la sekwencj instrukcji, podczas których mo»e wyst pi bª d. catch przechwytuje wyj tek okre±lonego typu throw sªu»y do generowania wyj tków okre±lonego typu throws okre±la list wszystkich wyj tków generowanych przez dan metod nally blok instrukcji do obsªugi wyj tków wykonywany zawsze, niezale»nie od tego czy dla danego wyj tku istnieje czy nie istnieje blok catch

29 Blok try... catch Do obsªugi wyj tków sªu»y blok try... catch. 1 t r y { 2 b l o k i n s t r u k c j i mog cy spowodowa w y j t e k 3 } 4 c a t c h ( Typ_Wyjatku_1 identyfikator_ Wyjatku_ 1 ) { 5 i n s t r u k c j a o b s ª u g 1 wyj tku_1 6 } 7 c a t c h ( Typ_Wyjatku_2 identyfikator_ Wyjatku_ 2 ) { 8 i n s t r u k c j a o b s ª u g 1 wyj tku_2 9 } 10 c a t c h ( Typ_Wyjatku_N identyfikator_wyjatku_n ) { 11 i n s t r u k c j a o b s ª u g 1 wyj tku_n 12 } 13 [ f i n a l l y i n s t r u k c j a _ o b s ª u g i w y j t k u ] Po try nast puje blok instrukcji mog cych spowodowa wyj tek. Je»eli podczas ich wykonywania zostanie on wygenerowany, wykonywanie zostanie przerwane, a sterowanie przekazane do bloku catch. Tu sprawdzane jest, czy która± z tych instrukcji odpowiada wygenerowanemu wyj tkowi. Je±li tak, wykonany zostanie kod po niej wyst puj cy, je»eli nie to kod z bloku nally (je»eli taki istnieje). Instrukcje z bloku nally wykonywane s zawsze.

30 Blok try... catch sekwencja wykonywania bloku try... catch: Wykonywane s kolejne instrukcje bloku try. Je±li przy wykonaniu której± z instrukcji zostanie zgªoszony wyj tek, wykonanie bloku try jest przerywane w miejscu zgªoszenia wyjatku. Sterowanie przekazywane jest do pierwszej w kolejno±ci klauzuli catch, w której podana w nawiasach okr gªych po sªowie catch klasa wyj tku pasuje do typu powstalego wyj tku, czyli klasa wyjatku jest taka sama jak klasa powstaªego wyj tku lub jest jej dowoln nadklas. Nale»y najpierw zapisywa kluazulecatch z bardziej szczegóªowymi klasami wyj tków: np. najpierw FileNotFoundException, a pó¹niej IOException, bo klasa FileNotFoundException jest pochodna od IOException.

31 Blok try... catch Inne klauzule catch nie s ju» wykonywane. Obsªuguj ca wyj tek klauzula catch mo»e zrobi wiele rzeczy: m.in. zmieni sekwencj sterowania (np. poprzez return). Je±li nie zmienia sekwencji sterowania to wykonanie programu b dzie kontynuowane od nast pnej instrukcji po bloku try. Ale niezaleznie od tego czy wyj tek powstaª czy nie i niezale»nie od tego czy ew. obsªuguj ca go klauzula catch zwraca sterowanie czy nie zawsze zaraz po zako«czeniem dziaªania bloku try wykonana zostanie klauzula nally (o ile jest).

32 Przykªad dzielenie przez zero 1 c l a s s d z i e l e n i e _ p r z e z _ z e r o 2 { 3 p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) 4 { 5 i n t b = 0 ; 6 i n t a = ; 7 i n t c ; 8 S t r i n g wynik ; 9 t r y 10 { 11 c = a / b ; 12 wynik = "" + c ; 13 } 14 c a t c h 15 { 16 ( A r i t h m e t i c E x c e p t i o n e ) 17 System. out. p r i n t l n ( " Niedozwolone d z i e l e n i e p r z e z z e r o " ) ; 18 wynik = " " ; 19 } 20 System. out. p r i n t l n ( wynik ) 21 } 22 }

33 Przykªad dzielenie przez zero W tym przypadku, wykonanie instrukcji c = a/b spowoduje powstanie wyj tku (dzielenie przez zero), a poniewa» instrukcja ta znajduje si w bloku try, w którym znajduje si blok catch z odpowiednim typem wyj tku, to je»eli b = 0 sterowanie zostanie przekazane do kodu w catch wyprowadzony zostanie napis "Niedozwolone dzielenie przez zero" pod zmienn wynik podstawione zostanie "***" zostanie wypisana zmienna wynik czyli "***" Gdyby zmienna b nie miaªa warto±ci zero, wyj tek by nie powstaª, kod z bloku catch nie zostaª by wykonany i wy±wietlony by zostaª wynik dzielenia a/b.

34 wyj tki - werykacja danych Mechanizm obsªugi wyj tków mo»e by wykorzystywany w bardzo ró»ny sposób. Typowym przykªadem jest werykacja wprowadzanych danych. I tak od u»ytkownika» damy wprowadzania liczb caªkowitych, a nast pnie za pomoc metody parseint przeksztaªcamy ich znakow reprezentacj na binarn. Je»eli wprowadzony napis nie reprezentuje liczby caªkowitej, to powstaje wyj tek NumberFormatException. Powinnien by on zawsze obsªugiwany. Pokazuje to nast puj cy program.

35 wyj tki - werykacja danych 1 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 2 3 S t r i n g s1 = JOptionPane. s h o w I n p u t D i a l o g ( " Podaj p i e r w s z l i c z b " ) ; 4 i f ( s1!= n u l l ) { 5 S t r i n g s2 = JOptionPane. s h o w I n p u t D i a l o g ( " Podaj drug l i c z b " ) ; 6 i f ( s2!= n u l l ) { 7 i n t n1 ; 8 i n t n2 ; 9 t r y { 10 n1 = I n t e g e r. p a r s e I n t ( s1 ) ; 11 n2 = I n t e g e r. p a r s e I n t ( s2 ) ; 12 } c a t c h ( NumberFormatException exc ) { 13 System. out. p r i n t l n ( " Bª dne dane " ) ; 14 r e t u r n ; 15 } 16 JOptionPane. showmessagedialog ( n u l l, "Suma : " + ( n1 + n2 ) ) ; 17 } 18 } 19 }

36 Klasa wyj tków Wyj tki s obiektami klas wyj tków. Nazwy NumberFormatException, ArithmeticException itd. s nazwami klas. Zmienna exc w bloku catch - zawiera referencj do obiektu odpowiedniej klasy wyj tku.

37 Klasa Throwable Klasy wyj tków tworz do± rozbudowan hierarchi dziedzczenia Nadrz dn klas reprezentuj c wyj tki jest klasa Throwable. Ka»da klasa wyst puj ca w bloku try... catch jest jedn z podklas klasy Throwable. Ma ona dwie bezpo±rednie podklasy: Exception u»ywa si jej z wyj tkami generowanymi i przechwytywanymi przez system. Error okre±la wyj tki, które w normalnej sytuacji nie powinny by przechwytywane (s to bardzo powa»ne bª dy).

38 Klasa RunTimeException Szczególn podklas klasy Exception jest klasa RunTimeException dla wyj tków spowodowanych przez system czasu przebiegu Javy, s one generowane automatycznie. Podstawowa ró»nica pomi dzy tymi klasami polega na tym,»e wyj tki klas pochodnych od Exception. ale nie RuntimeException s tzw. wyj tkami kontrolowanymi, co oznacza,»e musimy zapewni ich obsªug (kompilator zgªosi bª d, je±li tego nie zrobimy). Pozostaªych wyj tków obsªugiwa nie musimy (ale mo»emy)

39 Zgªaszanie wyj tków instrukcja Throw Oprócz bloku try...catch Java dostarcza jescze inny sposóbe zgªaszania wyj tków. Jest to instrukcja throw. Jest szczególnie przydatna w przypadku wyj tków, których nie da si obsªu»y, ich obsªuga nie ma sensu, lub po prostu ich wyst pienie mo»e spowodowa nieprawidªow prac w dalszych etapach programu. Jej skªadnia : 1 typ nazwa_metody ( ) t h r o w s typ_wyj tku1, typ_wyj tku2,... 2 { 3 kod... 4 t h r o w new typ_wyjatku_1 ( ) ; 5 t h r o w new typ_wyjatku_2 ( ) ; 6 kod 7 }

40 Throws W nagªówku metody musimy zadeklarowa, korzystaj c z instrukcji throws, list wyj tków jakie dana metoda mo»e wygenerowa. Pó¹niej w kodzie danej metody mo»na je zgªosi (zazwyczaj np w instrukcji if) korzystaj c z instrukcji throw. Zgªasza w ten sposób mo»na wszystkie rodzaje wyj tków, czyli obiekty klas, które po±rednio, lub bezpo±rednio dziedzicz z klasy Throwable. Kompilator wymaga deklarowania wyj tków reprezentowanych przez klas Exception oraz wi kszo± jej podklas. wyj tki klasy Error i RunTimeException oraz wszystkie jej podklasy nie wymagaj deklarowania.

41 Throw przyklad Program dziel cy liczb 1000 przez liczb podan przez u»ytkownika. 1 i m p o r t j a v a. u t i l. Scanner ; 2 3 p u b l i c c l a s s Main { 4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a g r s ) t h r o w s A r i t h m e t i c E x c e p t i o n 5 { 6 d o u b l e l i c z b a _ 1 = ; 7 d o u b l e liczba_ 2 ; 8 d o u b l e i l o r a z ; 9 Scanner d z i e l n i k = new Scanner ( System. i n ) ; 10 System. out. p r i n t ( " Podaj d z i e l n i k : " ) ; 11 l i c z b a _ 2 = d z i e l n i k. nextdouble ( ) ; 12 i f ( l i c z b a _ 2 == 0) 13 t h r o w new A r i t h m e t i c E x c e p t i o n ( " Nie mozna d z i e l i p r z e z 0" ) ; 14 e l s e 15 { 16 i l o r a z = l i c z b a _ 1 / l i c z b a _ 2 ; 17 System. out. p r i n t l n ( " wynik d z i e l e n i a : "+ i l o r a z ) ; 18 } 19 } 20 }

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

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ółowo

Równolegªo± w Javie w tki.

Ró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ółowo

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java J zyk programowania JAVA c 2011 Vincent Van GOGH: M»czyzna pij cy li»ank kawy Zadanie 6. Napisz program, który tworzy tablic 30 liczb wstawia do tej tablicy liczby od 0 do 29 sumuje te elementy tablicy,

Bardziej szczegółowo

Kurs programowania. Wykład 8. Wojciech Macyna

Kurs 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ółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast

Bardziej szczegółowo

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

Wą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ółowo

Programowanie 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 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ółowo

Współ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 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ółowo

Język Java wątki (streszczenie)

Ję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ółowo

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

Kurs 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ółowo

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

1 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ółowo

Wzorce projektowe strukturalne cz. 1

Wzorce projektowe strukturalne cz. 1 Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter

Bardziej szczegółowo

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów 1 Wst p Przypomnijmy,»e komputer skªada si z procesora, pami ci, systemu wej±cia-wyj±cia oraz po- ª cze«mi dzy nimi. W procesorze mo»emy

Bardziej szczegółowo

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

Autor: 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ółowo

Lab. 02: Algorytm Schrage

Lab. 02: Algorytm Schrage Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,

Bardziej szczegółowo

Model obiektu w JavaScript

Model obiektu w JavaScript 16 marca 2009 E4X Paradygmat klasowy Klasa Deniuje wszystkie wªa±ciwo±ci charakterystyczne dla wybranego zbioru obiektów. Klasa jest poj ciem abstrakcyjnym odnosz cym si do zbioru, a nie do pojedynczego

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Obliczenia 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 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ółowo

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

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...); Rozdziaª 4 P tle 4.1 Wst p Niniejszy rozdziaª zawiera opis p tli w j zyku C, wraz z przykªadowymi programami oraz ich obja±nieniem. 4.2 P tle P tla to element j zyka programowania, pozwalaj cy na wielokrotne,

Bardziej szczegółowo

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie Cz ± II Podziaª pracy 1 Tablica sortuj ca Kolejka priorytetowa to struktura danych udost pniaj ca operacje wstawienia warto±ci i pobrania warto±ci minimalnej. Z kolejki liczb caªkowitych, za po±rednictwem

Bardziej szczegółowo

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 16.03.2017 Interfejsy raz jeszcze "Interfejsy

Bardziej szczegółowo

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu. WYJĄTKI Klasa Throwable Exception Error Klasy dziedziczące po klasie Exception są typami wyjątków, które automatycznie obsługuje Java lub program przy jawnym przechwytywaniu i obsłudze wyjątków w blokach

Bardziej szczegółowo

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz Lekcja 8 - ANIMACJA 1 Polecenia Za pomoc Baltiego mo»emy tworzy animacj, tzn. sprawia by obraz na ekranie wygl daª jakby si poruszaª. Do animowania przedmiotów i tworzenia animacji posªu» nam polecenia

Bardziej szczegółowo

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Ję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ółowo

Wzorce projektowe kreacyjne

Wzorce projektowe kreacyjne Wzorce projektowe kreacyjne Krzysztof Ciebiera 14 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawy Opis Ogólny Podstawowe informacje Wzorce kreacyjne sªu» do uabstrakcyjniania procesu tworzenia obiektów. Znaczenie

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Wykład 8: Obsługa Wyjątków

Wykł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ółowo

Programowanie współbieżne i rozproszone

Programowanie 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ółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 8 Diagram pakietów I Diagram pakietów (ang. package diagram) jest diagramem strukturalnym,

Bardziej szczegółowo

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

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ółowo

Wielową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 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ółowo

Filozoa Clojure. Mateusz Dereniowski. 15 lipca Instytut Informatyki Uniwersytetu Wrocªawskiego

Filozoa Clojure. Mateusz Dereniowski. 15 lipca Instytut Informatyki Uniwersytetu Wrocªawskiego Filozoa Clojure Mateusz Dereniowski Instytut Informatyki Uniwersytetu Wrocªawskiego 15 lipca 2010 Wprowadzenie Clojure w skrócie Wieloplatformowo± aka JVM Standardy Czym jest JVM Co ª czy Clojure i JVM?

Bardziej szczegółowo

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

Wielową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ółowo

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Bash i algorytmy. Elwira Wachowicz. 20 lutego Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad

Bardziej szczegółowo

Język Java wątki (streszczenie)

Ję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ółowo

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska MiASI Modelowanie systemów informatycznych Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Analiza systemu informatycznego Poziomy analizy 2

Bardziej szczegółowo

Programowanie wielowątkowe. Tomasz Borzyszkowski

Programowanie 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ółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 2 Zwi zki mi dzy klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie (ang.

Bardziej szczegółowo

Lekcja 12 - POMOCNICY

Lekcja 12 - POMOCNICY Lekcja 12 - POMOCNICY 1 Pomocnicy Pomocnicy, jak sama nazwa wskazuje, pomagaj Baltiemu w programach wykonuj c cz ± czynno±ci. S oni szczególnie pomocni, gdy chcemy ci g polece«wykona kilka razy w programie.

Bardziej szczegółowo

Listy i operacje pytania

Listy i operacje pytania Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik

Bardziej szczegółowo

Wątki w Javie. Piotr Tokarski

Wą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ółowo

Lekcja 6 Programowanie - Zaawansowane

Lekcja 6 Programowanie - Zaawansowane Lekcja 6 Programowanie - Zaawansowane Akademia im. Jana Dªugosza w Cz stochowie Wst p Wiemy ju»: co to jest program i programowanie, jak wygl da programowanie, jak tworzy programy za pomoc Baltiego. Na

Bardziej szczegółowo

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Stworzenie 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ółowo

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196 Wyjątki 180 / 196 Wyjątki W Javie istnieje mechanizm tzw. wyjątków (ang. exception), który pozwala na przechwytywanie błędów pojawiających się w programie. Kompilacja tab [ 1 0 ] = 100; spowoduje powstanie

Bardziej szczegółowo

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746)

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746) Obsługa błędów za pomocą wyjątków Paweł Motofa (140746) Co zrobić, gdy wystąpi błąd Przykład Co zrobić, gdy wystąpi błąd Co zrobić, gdy wystąpi błąd Co zrobić, gdy wystąpi błąd Jak wyglądałaby funkcja

Bardziej szczegółowo

Kolekcje obiektów. Wyj tki.

Kolekcje obiektów. Wyj tki. Kolekcje obiektów. Wyj tki. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 30.03.2017 Kolekcje obiektów Kolekcje obiektów (Java Collections) sªu»

Bardziej szczegółowo

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

Aplikacje 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ółowo

Lekcja 5 Programowanie - Nowicjusz

Lekcja 5 Programowanie - Nowicjusz Lekcja 5 Programowanie - Nowicjusz Akademia im. Jana Dªugosza w Cz stochowie Programowanie i program wedªug Baltiego Programowanie Programowanie jest najwy»szym trybem Baltiego. Z pomoc Baltiego mo»esz

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w

Bardziej szczegółowo

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14 WST P DO TEORII INFORMACJI I KODOWANIA Grzegorz Szkibiel Wiosna 203/4 Spis tre±ci Kodowanie i dekodowanie 4. Kodowanie a szyfrowanie..................... 4.2 Podstawowe poj cia........................

Bardziej szczegółowo

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015 Android Podstawy tworzenia aplikacji Piotr Fulma«ski Instytut Nauk Ekonomicznych i Informatyki, Pa«stwowa Wy»sza Szkoªa Zawodowa w Pªocku, Polska March 4, 2015 Table of contents Framework Jednym z najwarto±ciowszych

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15 ANALIZA NUMERYCZNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Metoda Eulera 3 1.1 zagadnienia brzegowe....................... 3 1.2 Zastosowanie ró»niczki...................... 4 1.3 Output do pliku

Bardziej szczegółowo

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x() Wykład 3. Wyjątki 1) Obsługa wyjątków system czasu przebiegu Javy przerwanie programu class Wyjatek_1 //plik Proba_1.java int x; Wyjatek_1(int x_) x = x_; int iloraz() int p = 45/x; //generowanie wyjątku

Bardziej szczegółowo

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy? Zad.28. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( ) ; public void pisz ( ) ; Zad.29. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( int l i c z b a ) ; public

Bardziej szczegółowo

Rozwi zania klasycznych problemów w Rendezvous

Rozwi zania klasycznych problemów w Rendezvous Cz ± I Rozwi zania klasycznych problemów w Rendezvous 1 Producenci i konsumenci Na pocz tek rozwa»my wersj z jednym producentem i jednym konsumentem, dziaªaj cymi w niesko«czonych p tlach. Mechanizm komunikacji

Bardziej szczegółowo

Współbieżność w Javie

Współ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ółowo

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Lekcja 9 - LICZBY LOSOWE, ZMIENNE Lekcja 9 - LICZBY LOSOWE, ZMIENNE I STAŠE 1 Liczby losowe Czasami spotkamy si z tak sytuacj,»e b dziemy potrzebowa by program za nas wylosowaª jak ± liczb. U»yjemy do tego polecenia: - liczba losowa Sprawd¹my

Bardziej szczegółowo

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

Java. 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ółowo

Współbieżność w Javie

Współ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ółowo

Programowanie i struktury danych 1 / 44

Programowanie i struktury danych 1 / 44 Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje

Bardziej szczegółowo

Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI

Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI Marcn Šabudzik AGH-WFiIS, al. Mickiewicza 30, 30-059, Kraków, Polska email: labudzik@ghnet.pl www: http://fatcat.ftj.agh.edu.pl/

Bardziej szczegółowo

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki. Wydziaª Matematyki, Fizyki i Informatyki 10 marca 2008 Spis tre±ci Listy 1 Listy 2 3 Co to jest lista? Listy List w Mathematice jest wyra»enie oddzielone przecinkami i zamkni te w { klamrach }. Elementy

Bardziej szczegółowo

Podstawy Informatyki i Technologii Informacyjnej

Podstawy Informatyki i Technologii Informacyjnej Automatyka i Robotyka, Rok I Wprowadzenie do systemów operacyjnych PWSZ Gªogów, 2009 Denicja System operacyjny (ang. OS, Operating System) oprogramowanie zarz dzaj ce sprz tem komputerowym, tworz ce ±rodowisko

Bardziej szczegółowo

Wska¹niki, tablice dynamiczne wielowymiarowe

Wska¹niki, tablice dynamiczne wielowymiarowe Rozdziaª 11 Wska¹niki, tablice dynamiczne wielowymiarowe 11.1 Wst p Identycznie, jak w przypadku tablic statycznych, tablica dynamiczna mo»e by tablic jedno-, dwu-, trójitd. wymiarow. Tablica dynamiczna

Bardziej szczegółowo

Lekcja 3 Banki i nowe przedmioty

Lekcja 3 Banki i nowe przedmioty Lekcja 3 Banki i nowe przedmioty Akademia im. Jana Dªugosza w Cz stochowie Banki przedmiotów Co ju» wiemy? co to s banki przedmiotów w Baltie potramy korzysta z banków przedmiotów mo»emy tworzy nowe przedmioty

Bardziej szczegółowo

Szeregowanie zada« Przedmiot fakultatywny 15h wykªadu + 15h wicze« dr Hanna Furma«czyk. 7 pa¹dziernika 2013

Szeregowanie zada« Przedmiot fakultatywny 15h wykªadu + 15h wicze« dr Hanna Furma«czyk. 7 pa¹dziernika 2013 Przedmiot fakultatywny 15h wykªadu + 15h wicze«7 pa¹dziernika 2013 Zasady zaliczenia 1 wiczenia (ocena): kolokwium, zadania dodatkowe (implementacje algorytmów), praca na wiczeniach. 2 Wykªad (zal): zaliczone

Bardziej szczegółowo

Ukªady równa«liniowych

Ukªady równa«liniowych dr Krzysztof yjewski Mechatronika; S-I 0 in» 7 listopada 206 Ukªady równa«liniowych Informacje pomocnicze Denicja Ogólna posta ukªadu m równa«liniowych z n niewiadomymi x, x, x n, gdzie m, n N jest nast

Bardziej szczegółowo

2 Skªadnia polece«w pliku

2 Skªadnia polece«w pliku Interpreter opisu dziaªa«platformy mobilnej wtyczki 1 Ogólny opis zadania Nale»y napisa program, który b dzie w stanie przeczyta z pliku tekstowego sekwencj polece«ruchu, a nast pnie zasymulowa dziaªanie

Bardziej szczegółowo

2 Liczby rzeczywiste - cz. 2

2 Liczby rzeczywiste - cz. 2 2 Liczby rzeczywiste - cz. 2 W tej lekcji omówimy pozostaªe tematy zwi zane z liczbami rzeczywistymi. 2. Przedziaªy liczbowe Wyró»niamy nast puj ce rodzaje przedziaªów liczbowych: (a) przedziaªy ograniczone:

Bardziej szczegółowo

Bazy danych, 4. wiczenia

Bazy danych, 4. wiczenia Bazy danych, 4. wiczenia 2007-10-23 1 Plan zaj PL/SQL, cz ± II: tabele kursory sªu» ce do zmiany danych, procedury, funkcje, pakiety, wyzwalacze. 2 Tabele Deklaracja TYPE t_tab IS TABLE OF VARCHAR(20)

Bardziej szczegółowo

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). 1. Programowanie zdarzeniowe Programowanie zdarzeniowe

Bardziej szczegółowo

1 Metody iteracyjne rozwi zywania równania f(x)=0

1 Metody iteracyjne rozwi zywania równania f(x)=0 1 Metody iteracyjne rozwi zywania równania f()=0 1.1 Metoda bisekcji Zaªó»my,»e funkcja f jest ci gªa w [a 0, b 0 ]. Pierwiastek jest w przedziale [a 0, b 0 ] gdy f(a 0 )f(b 0 ) < 0. (1) Ustalmy f(a 0

Bardziej szczegółowo

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X. Relacje 1 Relacj n-argumentow nazywamy podzbiór ϱ X 1 X 2... X n. Je±li ϱ X Y jest relacj dwuargumentow (binarn ), to zamiast (x, y) ϱ piszemy xϱy. Relacj binarn okre±lon w zbiorze X nazywamy podzbiór

Bardziej szczegółowo

Lekcja 9 Liczby losowe, zmienne, staªe

Lekcja 9 Liczby losowe, zmienne, staªe Lekcja 9 Liczby losowe, zmienne, staªe Akademia im. Jana Dªugosza w Cz stochowie Liczby losowe Czasami potrzebujemy by program za nas wylosowaª liczb. U»yjemy do tego polecenia liczba losowa: Liczby losowe

Bardziej szczegółowo

Baza danych - Access. 2 Budowa bazy danych

Baza danych - Access. 2 Budowa bazy danych Baza danych - Access 1 Baza danych Jest to zbiór danych zapisanych zgodnie z okre±lonymi reguªami. W w»szym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyj tymi dla danego programu

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

Aplikacja 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ółowo

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

Bardziej szczegółowo

x y x y x y x + y x y

x y x y x y x + y x y Algebra logiki 1 W zbiorze {0, 1} okre±lamy dziaªania dwuargumentowe,, +, oraz dziaªanie jednoargumentowe ( ). Dziaªanie x + y nazywamy dodawaniem modulo 2, a dziaªanie x y nazywamy kresk Sheera. x x 0

Bardziej szczegółowo

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy. Logika i teoria mnogo±ci, konspekt wykªad 12 Teoria mocy, cz ± II Def. 12.1 Ka»demu zbiorowi X przyporz dkowujemy oznaczany symbolem X obiekt zwany liczb kardynaln (lub moc zbioru X) w taki sposób,»e ta

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 5 Diagram sekwencji - wprowadzenie I Diagram sekwencji (ang. sequence diagram) jest jednym

Bardziej szczegółowo

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13 Podstawy JavaScript Dawid Poªap Dawid Poªap Technologia informacyjna Grudzie«, 2017 1 / 13 Plan na reszt zaj z TI Dzisiaj podstawy podstaw programowania w konsoli. W nowym roku na stronie internetowej

Bardziej szczegółowo

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, 2012. Dawid Rasaªa Metody numeryczne 1 / 9

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, 2012. Dawid Rasaªa Metody numeryczne 1 / 9 Metody numeryczne Wst p do metod numerycznych Dawid Rasaªa January 9, 2012 Dawid Rasaªa Metody numeryczne 1 / 9 Metody numeryczne Czym s metody numeryczne? Istota metod numerycznych Metody numeryczne s

Bardziej szczegółowo

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017 i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski Uniwersytet Šódzki, Wydziaª Matematyki i Informatyki UŠ piotr@fulmanski.pl http://fulmanski.pl/zajecia/prezentacje/festiwalnauki2017/festiwal_wmii_2017_

Bardziej szczegółowo

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1 J zyki formalne i operacje na j zykach J zyki formalne s abstrakcyjnie zbiorami sªów nad alfabetem sko«czonym Σ. J zyk formalny L to opis pewnego problemu decyzyjnego: sªowa to kody instancji (wej±cia)

Bardziej szczegółowo

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach 12: w sieciach Spis zagadnie«sieci przepªywowe przepªywy w sieciach ±cie»ka powi kszaj ca tw. Forda-Fulkersona Znajdowanie maksymalnego przepªywu Zastosowania przepªywów Sieci przepªywowe Sie przepªywowa

Bardziej szczegółowo

Subversion - jak dziaªa

Subversion - jak dziaªa - jak dziaªa Krótka instrukcja obsªugi lstelmach@gmail.com Stelmisoft 12/07/2010 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 Spis tre±ci Czym jest Czym jest repozytorium 1 Czym jest Czym jest repozytorium

Bardziej szczegółowo

Ekonometria. wiczenia 1 Regresja liniowa i MNK. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Ekonometria. wiczenia 1 Regresja liniowa i MNK. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej Ekonometria wiczenia 1 Regresja liniowa i MNK (1) Ekonometria 1 / 25 Plan wicze«1 Ekonometria czyli...? 2 Obja±niamy ceny wina 3 Zadania z podr cznika (1) Ekonometria 2 / 25 Plan prezentacji 1 Ekonometria

Bardziej szczegółowo

1 Bª dy i arytmetyka zmiennopozycyjna

1 Bª dy i arytmetyka zmiennopozycyjna 1 Bª dy i arytmetyka zmiennopozycyjna Liczby w pami ci komputera przedstawiamy w ukªadzie dwójkowym w postaci zmiennopozycyjnej Oznacza to,»e s one postaci ±m c, 01 m < 1, c min c c max, (1) gdzie m nazywamy

Bardziej szczegółowo

O pewnym zadaniu olimpijskim

O pewnym zadaniu olimpijskim O pewnym zadaniu olimpijskim Michaª Seweryn, V LO w Krakowie opiekun pracy: dr Jacek Dymel Problem pocz tkowy Na drugim etapie LXII Olimpiady Matematycznej pojawiª si nast puj cy problem: Dla ka»dej liczby

Bardziej szczegółowo

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy Instrukcja obsługi programu 2.11. Przygotowanie programu do pracy - ECP Architektura inter/intranetowa System Informatyczny CELAB Przygotowanie programu do pracy - Ewidencja Czasu Pracy Spis treści 1.

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego

Bardziej szczegółowo

Tworzenie aplikacji webowych w oparciu o framework ObjectLedge

Tworzenie aplikacji webowych w oparciu o framework ObjectLedge Tworzenie aplikacji webowych w oparciu o framework ObjectLedge Konrad Mizi«ski Wydziaª Elektroniki i Technik Informacyjnych, Politechnika Warszawska, K.Mizinski@stud.elka.pw.edu.pl Streszczenie ObjectLedge

Bardziej szczegółowo

Opis matematyczny ukªadów liniowych

Opis matematyczny ukªadów liniowych Rozdziaª 1 Opis matematyczny ukªadów liniowych Autorzy: Alicja Golnik 1.1 Formy opisu ukªadów dynamicznych 1.1.1 Liniowe równanie ró»niczkowe Podstawow metod przedstawienia procesu dynamicznego jest zbiór

Bardziej szczegółowo

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu ➏ Filozoa z elementami logiki Na podstawie wykªadów dra Mariusza Urba«skiego Sylogistyka Przypomnij sobie: stosunki mi dzy zakresami nazw KLASYCZNE ZDANIA KATEGORYCZNE Trzy znaczenia sªowa jest trzy rodzaje

Bardziej szczegółowo

Projekt systemy operacyjne 2 - Systemowe mechanizmy synchr

Projekt systemy operacyjne 2 - Systemowe mechanizmy synchr systemy operacyjne 2 - Systemowe mechanizmy synchronizacji procesów 19 lutego 2012 Wielow tkowo± Mechanizmy synchronizacji Wielow tkowo± Mechanizmy synchronizacji Klasyczne przykªady programów Wielow tkowo±

Bardziej szczegółowo