Thread és Task.

Slides:



Advertisements
Hasonló előadás
© Kozsik Tamás Különböző nyelvekhez igazítás Internationalization - i18n.
Advertisements

4. alkalom – Hálózat Kezelés
Osztály leszármaztatás
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
© Kozsik Tamás Párhuzamosság A program egyszerre több mindent is csinálhat Lehetőségek: –Számítással egyidőben IO –Több processzor: számítások.
Szabó Tamás Károly G6HT12 A Ruby programozási nyelv.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Microsoft Windows A Windows fejlődése, általános jellemzése – 2. dia
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
A Java programozási nyelvSoós Sándor 1/16 Java programozási nyelv 6. rész – Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
C# tagfüggvények.
C# tagfüggvények.
Krizsán Zoltán.  Ha az algoritmus sokáig dolgozik,  de el akarjuk kerülni a „fagyást”.  Kisebb a költsége, mint az új folyamatnak.  Programozás szempontjából.
V 1.0 OE-NIK HP 1 Haladó Programozás BackgroundWorker Szálkezelés + szinkronizáció.
Kivételkezelés.
1 Operációs rendszerek Az NT folyamatok kezelése.
V 1.0 OE-NIK HP 1 Haladó Programozás Folyamatok Szálkezelés: Parallel.For.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
CSS A CSS bemutatása.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Java programozási nyelv Filekezelés
Java programozási nyelv Adatbekérés konzolról
1. Feladat Hozzunk létre egy olyan programot amely számokat ír ki és a felhasználónak időre be kell gépelni ezeket.
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
2. Gyakorlat Zalatnai Csongor
V 1.0 OE-NIK HP 1 Haladó Programozás A párhuzamos végrehajtás alapjai Folyamatok Szálkezelés alapok.
Haladó Programozás System.Threading.Tasks.Task OE-NIK HP.
V 1.0 OE-NIK HP 1 Haladó Programozás Folyamatok Szálkezelés alapok.
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Java web programozás 5..
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Haladó Programozás Reflexió OE-NIK HP.
DLL használata és készítése Feladat
V 1.0 OE-NIK HP 1 Haladó Programozás Szálkezelés + szinkronizáció.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
Bevezetés a C# nyelvbe Az alapok összefoglalása Farkas Csaba.
Párhuzamosság A program egyszerre több mindent is csinálhat Lehetőségek: –Számítással egyidőben IO –Több processzor: számítások egyidőben –Egy processzor.
Párhuzamos programozás
„Designer-barát” játéklogika
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Haladó Programozás System.Threading.Tasks.Task OE-NIK HP.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
Web programozás és haladó fejlesztési technikák Task async-await
Web programozás és haladó fejlesztési technikák Folyamatok és szálak
Folyamatok.
Szálszinkronizáció.
B M Java Programozás 5. Gy: Java alapok IT A N Adatkezelő 1.rész
Web programming and advanced development techniques
Előadás másolata:

Thread és Task

Emlékeztető System.Threading.Thread osztály Metódusok Start() Szál indítása Suspend(), Resume() Szál felfüggesztése, illetve folytatása Abort() Szál leállítása GetHashCode() Szál azonosítójának lekérése Sleep() Várakozás a megadott időintervallum elteltéig Join() Várakozás az adott szál befejeződésére Tulajdonságok CurrentCulture, CurrentUICulture A szálhoz tartozó aktuális kultúra, illetve a szálhoz tartozó felhasználói felület kiválasztott nyelve IsBackground Az adott szál háttérszál vagy előtérszál* IsThreadPoolThread Az adott szál a ThreadPool egyik szála-e ManagedThreadID A szál egyedi azonosítója Name A szál megnevezése Priority A szál prioritása (fontossági szintje) ThreadState A szál aktuális állapota(i) * A programok futása véget ér, ha az utolsó előtérszál is lefutott (az esetleg még futó háttérszálak ekkor automatikusan megszűnnek).

Hello világ! using System; using System.Threading; namespace _01_HelloWorld { class Program static void Main(string[] args) Thread t = new Thread(Koszon); Console.WriteLine("Szál indítása!"); t.Start(); Console.WriteLine("Várakozás a befejezésre..."); t.Join(); Console.ReadLine(); } static void Koszon() Console.WriteLine("Hello világ!"); Megj. hívjátok fel a figyelmet, hogy a kód nem jó (Start(), Join() egymás utáni sorokban egyből ki is nyírja a párhuzamosságot)

Paraméter átadása static void Main(string[] args) { Thread t = new Thread(Koszon); Console.WriteLine("Szál indítása!"); t.Start("Pistike"); Console.WriteLine("Várakozás a befejezésre..."); t.Join(); Console.ReadLine(); } static void Koszon(object o) string nev = o.ToString(); Console.WriteLine("Hello " + o + "!"); Megj. hívjátok fel a figyelmet, hogy a kód nem jó (Start(), Join() egymás utáni sorokban egyből ki is nyírja a párhuzamosságot)

Szálpárhuzamosság Thread t = new Thread(Kiir); Thread.Sleep(1500); Console.WriteLine("asd"); }); t.Start(); t2.Start(); for (int i = 0; i < 20; i++) { Thread.Sleep(100); Console.WriteLine("Várakozás #{0}", i); } Megj. hívjátok fel a figyelmet, hogy a kód nem jó (Start(), Join() egymás utáni sorokban egyből ki is nyírja a párhuzamosságot)

Feladat Hozzon létre konzolos alkalmazást, amelynek segítségével előre beállítható darabszámú weboldal teljesítményét tudjuk 10-10 másodpercen át tesztelni külön szálakon futó System.Net.WebClient().DownloadString(url) metódushívások segítségével. A megoldáshoz használjon Threadeket!

Emlékeztető Task t1 = new Task(Kiir); Task t2 = new Task(() => { Console.WriteLine("asdasd"); }); //Task t = new Task(Action action) Task<int> t3 = new Task<int>(() => { Thread.Sleep(1000); return 42; }); t1.Start(); Task t4 = Task.Run(() => { Console.WriteLine("valami"); }); t1.Wait(); //Task.WaitAll(t1, t2, t3); //params Task[] //Task.WaitAll(new Task[] { t1, t2, t3 }); t3.Start(); Console.WriteLine(t3.Result); //Wait Task hosszuTask = new Task(() => { Thread.Sleep(1000); }); hosszuTask.ContinueWith(x => { Console.WriteLine("Vége a hosszú tasknak!"); }); hosszuTask.Start(); Megj. hívjátok fel a figyelmet, hogy a kód nem jó (Start(), Join() egymás utáni sorokban egyből ki is nyírja a párhuzamosságot)

Feladat Egy RSS-olvasó program készítése a feladat. Az RSS állományok szabványos XML strukturájú dokumentumok, amelyeket jellemzőn hírportálok alkalmaznak arra, hogy a feliratkozóikat értesíteni tudják a friss tartalmakról. OE-NIK HP

Feladat A feladat egy könyvtár méretének meghatározása, alkönyvtárakkal együtt. Ehhez minden a könyvtárban (és alkönyváraiban, és azok alkönyvtáraiban…) levő fájl méretét le kell kérdezni és összegezni. a) Hiba esetén (pl. nincs megfelelő jogosultság a könyvtárba lépéshez) ezeljük a keletkezett kivételt. Célszerű esetleg folytatni a műveletet. b) Legyen lehetőség a leállításra (Cancel) OE-NIK HP