fejlett programoz si technol gi k ii
Download
Skip this Video
Download Presentation
Fejlett Programozási Technológiák II.

Loading in 2 Seconds...

play fullscreen
1 / 16

Fejlett Programozási Technológiák II. - PowerPoint PPT Presentation


  • 79 Views
  • Uploaded on

Fejlett Programozási Technológiák II. 12. gyakorlat. Világos Zsolt. Mai gyakorlat. Threads – Szálak Process vs szál Szálkezelési módok Szál definiálása Szemafor és monitor Mutual Exclusion és programelemek. Process vs szál. Time slicing

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Fejlett Programozási Technológiák II.' - jeff


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
fejlett programoz si technol gi k ii

Fejlett Programozási Technológiák II.

12. gyakorlat

Világos Zsolt

mai gyakorlat
Mai gyakorlat
  • Threads – Szálak
    • Process vs szál
    • Szálkezelési módok
    • Szál definiálása
    • Szemafor és monitor
    • Mutual Exclusion és programelemek

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

process vs sz l
Process vs szál
  • Time slicing
    • mulitask megvalósítása: időosztásos os-ek, vagy több processzor/mag/gép (PVM)
    • Processeknek és szálaknak is van prioritása
    • Java: 10 szint van, leképezés os-re: JVMThread.{Max | Min | Norm}Priority
    • Windowsban azt hiszem 7 van

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

process vs sz l1
Process vs szál
  • Process
    • Minden processnek saját végrehajtási környezete van (pl saját memória terület)
      • 1 program = 1-* process
    • Process közti kommunikáció: IPC (Inter Process Communication)
      • Egy gépen vagy több gép között
    • Java: ProcessBuilder és Process osztályok

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

process vs sz l2
Process vs szál
  • Thread
    • Saját végrehajtási környezete van
      • Indítása olcsóbb mint egy process indítása
      • Hajrá Occam!
    • 1 Process = 1-* szál
    • Előny: thread osztozik process erőforrásain
    • Hátrány: kommunikáció  kölcsönös kizárás

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

sz lkezel si m dok
Szálkezelési módok
  • Két mód van rá
    • Direkt szál menedzsment
      • java.lang.Runnable és ~.Thread
    • Magasabb (absztraktabb API)
      • java.util.concurrent
      • (thread pool)
    • elsővel foglalkozunk

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

sz l defini l sa
Szál definiálása
  • Szál definiálása
    • két mód:
      • Runnable interfész implementálása
      • Thread osztályból származtatás, mely osztály implementálja a fenti interfészt
    • előző preferáltabb az egyszeres öröklődés miatt

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

mai gyakorlat1
Mai gyakorlat
  • Szemafor és monitor
    • A szemafor a párhuzamosság alapvető eszköze
    • alkalmas kölcsönös kizárásra és szinkronizálásra is
    • hátránya, hogy a kezelő kód szétszórt
  • Monitor: fogjuk össze a kódokat

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

monitor
Monitor
  • Java-ban minden objektum viselkedhet monitorként.
  • Az Object ősosztály nyújtja ezt a szolgáltatást metódusok által
    • wait(), wait(long timeout)
    • notify(), notifyAll()

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

monitor1
Monitor
  • Szerkezet:
    • valósítsuk meg a közös erőforrást egy osztályban
    • a rajta végzett műveletek legyenek metódusok, melyek kezelik a kommunikációs problémákat
    • a kritikus rész így központosítottam lesznek

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

object
Object
  • Metódusok:
    • wait(), wait(long timeout)
      • az aktuális szál az objektum várakozási sorába kerül, amíg egy másik szál notify(All)-t nem hív
      • timeout: előző + max timeout ms-ig
    • notify(), notifyAll()
      • az első egy szálat kivesz a várakozási sorból
      • a második mindegyiket kiveszi a sorból

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

thread
Thread
  • Metódusok:
    • sleep(long time)
      • az akt szál time ideig várakozik
    • join(Thread t)
      • aktuális szál vár, amíg t szál terminál
      • overload változatával timeout is megadható
    • start()/stop()
      • szál indítás és megállítás (utóbbi Deprecated)

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

thread1
Thread
  • Metódusok:
    • interrupt()
      • megszakítja a szál futását
      • átállítja a belső interrupted flag-et
      • wait és … hívások ellenőrzik a flag-et, és ha megszakították a szálat, akkor hibát dobnak
      • InterruptedException
      • nincs konvenció, kezelése a programozó feladata

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

synchronized
Synchronized
  • Kölcsönös kizárás része
    • két helyen lehet
      • függvény előttpublic synchronized void doit() {…}
      • függvényben, blokk előttsynchronized (Object o) {…}pl.: synchronized (this) {…}
    • hatása: a megjelölt kódrészletet egyszerre csak egy szál hajthatja végre

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

synchronized m k d s
Synchronized működés
  • Statikus metódusok esetén az osztályt leíró Class objektumhoz rendelt monitort használja a kód
  • Példány metódus esetén az adott objektum kerül használatba

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

k sz n m a figyelmet
Köszönöm a figyelmet!

Fejlett Programozási Technológiák II. gyakorlat - Világos Zsolt

ad