Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -

Slides:



Advertisements
Podobné prezentace
(instance konkrétní třídy)
Advertisements

Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Funkce Připomeňme si program pro výpočet faktoriálu:
Pole, ukazatele a odkazy
Metody (funkce, procedury)
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
Polymorfismus Dědičnost
C++ Přednáška 3 Konstantní a statické členy tříd, ukazatel this, konstantní instance třídy Ing. Jiří Kulhánek , kat. 352, VŠB TU Ostrava 2004.
Čtvrté cvičení Objektové programování Objektový model v Javě
Větvení cykly J a v a Začínáme programovat Lucie Žoltá.
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
Fronty (Queue) v JDK 1.5 (1.6) Java.vse.cz.
Objektové programování a výjimky 2. cvičení Y36PJV, X36PJV
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
13AMP 8. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled RT jazyky RT jazyky Modula Modula Modula II Modula II.
Kapitoly z metodologie pedagogického výzkumu Prostředí pro výuku algoritmů Vojtěch Ouška.
Třída jako zdroj funkcionality
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
C# - Exceptions (výjimky)
Objektové orientované programování Objektově orientované problémy v PHP Lukáš Masopust 2008.
Objektové programování
Podpora vláken a jejich synchronizace v jazyce C# Jan Kučera Jan Mittner Petr Effenberger 4IT353 Klient/server aplikace v Javě.
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.
6. cvičení Polymorfismus
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
ZADÁNÍ Sestavte program, který vypočítá obvod a obsah čtverce o straně a. Zajistěte, aby výpočet byl realizován pouze v případě, kdy strana a bude mít.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
13/04/20151 Multitasking Schopnost operačního systému mít spuštěno více programů současně Operační systém používá hardwarové hodiny a každému běžícímu.
Šesté cvičení Výjimky Balíky.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
POSLOUPNOST úkol 1_41. ZADÁNÍ Sestavte program, který doplní tabulku nepřímé úměrnosti pro hodnoty proměnné x = 1, …, n. Nepřímá úměrnost je zadána uživatelem.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
FEL Komunikátor. Memory Leak program konsumuje operační paměť, kterou neumožňuje uvolnit o uvolnění paměti stará Garbage Collector ▫plně v režii Java.
PŘÍKAZ while úkol 1_42.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
NEÚPLNÁ PODMÍNKA V JAVĚ úkol 1_26. ZADÁNÍ Napište zdrojový kód k zadanému vývojovému diagramu.
PŘÍKAZ for úkol 1_47.
NEÚPLNÁ PODMÍNKA V JAVĚ úkol 1_25. ZADÁNÍ Sestavte program, který po načtení čísla z klávesnice vypočítá jeho absolutní hodnotu a vytiskne ji na obrazovku.
Strategy. Motivace Různé algoritmy pro stejnou akci Hromada kódu v mnoha podmínkách Důsledky  Komplexnost  Špatná čitelnost  Těžká správa kódu  Těžka.
Proxy. Popis  Klient má přístup k nějakému objektu  Potřebujeme tento přístup ošetřit, aniž bychom přidělali klientovi práci Kontrola přístupu Vzdálený.
Vaše jistota na trhu IT Rozhraní a implementace Rudolf PECINOVSKÝ 2012 – Vývoj bezpečných aplikací 1.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
PJV15 1 Vnořené ( nested ) a vnitřní ( inner ) členy Třídy či interfejsy mohou být členy tříd či interfejsů. Je-li X obalem Y a Y obalem Z, pak Z získá.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Y36PJC Programování v jazyce C/C++
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Procházka na provázku Program s metodami připomíná knósský labyrint se sály, jimiž se protlouká statečný Theseus, jemuž pro šťastný návrat chytrá Ariadna.
Návrhový vzor Flyweight
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Bridge.
Reflexe jako introspekce
C# přehled vlastností.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Vlákna v Javě Petr Adámek
Transkript prezentace:

Jedenácté cvičení Vlákna

Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading - více „toků“ se vykonává „současně“ v jednom programu

Java cv113 Důvody použití vláken Monitoring stavu úlohy např. progressbar Umožnění reakce během provádění jiné úlohy např. reakce na Storno během výpočtu Využití výkonu, který by byl zbytečně vyplýtván čekáním např. čekání na vstup z klávesnice Simulace paralelních procesů

Java cv114 Jak vytvořit vlákno I Vytvořit třídu zděděnou ze třídy Thread Překrýt metodu run() Vlákno se pak spouští metodou start()

Java cv115 Jak vytvořit vlákno I - příklad class Vlakno1 extends Thread { public void run() { //vlastni kod vlakna... } //spousteni Vlakno1 vlakno = new Vlakno1(); vlakno1.start();...

Java cv116 Jak vytvořit vlákno II Vytvořit třídu implementující interface Runnable Implementovat v ní metodu run() Vytvořit instanci vlákna a předat jí objekt třídy jako parametr konstruktoru. Zavolat na instanci vlákna metodu start()

Java cv117 Jak vytvořit vlákno II - příklad class Vlakno2 implements Runnable { public void run() { //vlastni kod vlakna... }... //spousteni Vlakno2 vlakno = new Vlakno2(); Thread t = new Thread(vlakno); t.start();...

Java cv118 Funkční příklad public class Vlakno1 extends Thread { String name; public Vlakno1(String name) {this.name = name;} public void run() { while (true) { System.out.println(name); try { Thread.sleep(1000); } catch (InterruptedException e) { } public static void main(String[] args) { Vlakno1 v1 = new Vlakno1("Hynek"); Vlakno1 v2 = new Vlakno1("Vilem"); Vlakno1 v3 = new Vlakno1("Jarmila"); v1.start(); v2.start(); v3.start(); }

Java cv1110 Přístup ke sdíleným zdrojům Pokud více vláken přistupuje ke sdíleným zdrojům, vzniká problém synchronizace Přepnutí vláken v nevhodném místě může způsobit problém nekonzistence dat Tzv.: KRITICKÉ SEKCE

Java cv1111 Příklad – s kritickými sekcemi public class Bod { int[] pozice = new int[2]; public void setPozice(int x, int y) { pozice[0] = x; //kriticke misto pozice[1] = y; } public int[] getPozice() { return new int[] {pozice[0], pozice[1]}; }

Java cv1112 Synchronizace kritických sekcí Klíčové slovo synchronized Označíme takto kritické sekce Předání řízení nemůže nastat, pokud je vlákno v synchronized sekci Používá se princip monitorů každý objekt v Javě má svůj monitor lze označit jako synchronized i menší úseky než celé metody lze použít monitor jiného objektu

Java cv1113 Příklad – se synchronizací public class Bod { int[] pozice = new int[2]; synchronized public void setPozice(int x, int y) { pozice[0] = x; //kriticke misto pozice[1] = y; } synchronized public int[] getPozice() { return new int[] {pozice[0], pozice[1]}; }