Különbség a futtatható és a szál között

Tartalomjegyzék:

Különbség a futtatható és a szál között
Különbség a futtatható és a szál között

Videó: Különbség a futtatható és a szál között

Videó: Különbség a futtatható és a szál között
Videó: Process vs Thread 2024, November
Anonim

Kiemelt különbség – futtatható vs szál

Egy futó program folyamatként ismert. A folyamat több részfolyamatra osztható. Például a Microsoft Word egy folyamat. Ugyanakkor ellenőrzi a helyesírási és nyelvtani hibákat. Ez egy részfolyamat. Ezeket az alfolyamatokat szálaknak nevezzük. A többszálú feldolgozás több szál egyidejű végrehajtásának folyamata. A menetes alkalmazások különböző programozási nyelvek segítségével építhetők. A Runnable és a Thread a Java programozáshoz kapcsolódik. A Java-ban két módszer létezik a szál létrehozására futtatható felület megvalósításával vagy a Thread osztály kiterjesztésével. A Runnable implementációja során sok szál oszthatja meg ugyanazt a szálobjektumot, míg az Extending Thread osztályban minden szálhoz egyedi objektum tartozik. Ez a legfontosabb különbség a Runnable és a Thread között.

Mi az a futtatható?

Egy szál átmegy bizonyos állapotokon. Az „új” a szál életciklusának kezdete. Miután a start() metódus egy új szálat hív meg, futtathatóvá válik. Ha a szálütemező kiválasztja a szálat, akkor az futó állapotba kerül. A szál az állapotra vár, ha az adott szál egy másik szálra vár egy feladat végrehajtására. Miután a szál befejezte a munkát, a befejező állapotba kerül.

Egy szálat a Runnable interfész segítségével lehet megvalósítani. Tekintse meg az alábbi programot.

Különbség a futtatható és a szál között
Különbség a futtatható és a szál között

01. ábra: Java program szál létrehozásához a futtatható felület használatával

A fenti program szerint a Runnable Demo osztály valósítja meg a Runnable felületet. A run() metódus a Runnable interfészt megvalósító osztályon belül található. Ez a szál belépési pontja. A logika a run() metódusban van. A fő programban egy szál jön létre egy olyan objektum meghatározásával, amely a Runnable Demo osztályból példányosodott. Ez t1. A start() metódus a t1 használatával kerül meghívásra.

Tekintse meg az alábbi programot.

A Runnable és a Thread közötti különbség_2. ábra
A Runnable és a Thread közötti különbség_2. ábra

02. ábra: Java program egy szál létrehozásához a ciklus végrehajtásához a Runnable interfész megvalósításával

A fenti példa szerint a Runnable Demo osztály futtatható felületet valósít meg. A szál használatával végrehajtandó logika a run() metódussal van megírva. A fő programban egy szál jön létre egy olyan objektum meghatározásával, amely a Runnable Demo osztályból példányosodott. Ez t1. Ezután a start() metódus a t1. használatával kerül meghívásra.

Mi az a szál?

A szál létrehozásának másik módja a Thread osztály kiterjesztése. Három lépésből áll. Az első az, hogy deklaráljuk az osztályt a Thread osztály kiterjesztéseként. Utána meg kell írni a run() metódust. Megvan a lépések sorozata, amelyet a szálnak végre kell hajtania. Végül létrejön a szál objektum, és meghívásra kerül a start() metódus, amely elindítja a szál végrehajtását. Tekintse meg az alábbi programot.

A Runnable és a Thread közötti különbség_03. ábra
A Runnable és a Thread közötti különbség_03. ábra

03. ábra: Java program, amely kiterjeszti a szál osztályt

A fenti program szerint a MyThread osztály kiterjeszti a Thread osztályt. Felülírja a futtatási metódust. A run() metódus tartalmazza a szál által végrehajtandó logikát. Ez a szál belépési pontja. Ezután létrejön a szál objektum. Ez a szál 1. A szál a start() metódussal indul. Ez végrehajt egy hívást a run() metódushoz.

A Thread osztályt kiterjesztő két osztály példaprogramja a következő.

Főbb különbség a futtatható és a szál között
Főbb különbség a futtatható és a szál között

04. ábra: Java program két osztállyal, amelyek kiterjesztik a szál osztályt

A fenti program szerint mind az A, mind a B osztály kiterjeszti a szál osztályt. Mindkét osztálynak megvan a run() metódus megvalósítása. A fő szál az, amely végrehajtja a main() metódust. A főszál elhalása előtt létrehozza és elindítja az 1-es és a 2-es szálat. Mire a fő szál elérte a fő metódus végét, három szál fut párhuzamosan. Nincs meghatározott sorrend, amelyben a szálak adják a kimenetet. A szál elindítása után nehéz eldönteni, hogy milyen sorrendet fognak végrehajtani. Önállóan futnak.

Mi a hasonlóság a futtatható és a szál között?

Mindkettő egy szál létrehozására szolgál Java nyelven

Mi a különbség a futtatható és a szál között?

Futható vs szál

A Runnable egy olyan interfész a Java nyelven, amellyel egy szál hozható létre, amely lehetővé teszi, hogy sok szál megosszák ugyanazt a szálobjektumot. A szál egy Java osztály, amely egy olyan szál létrehozására szolgál, ahol minden szálhoz egyedi objektum tartozik.
Memória
A Runnable alkalmazásban több szál osztozik ugyanazon az objektumon, így kevesebb memóriát igényel. A Thread osztályban minden szál egyedi objektumot hoz létre, ezért több memóriát igényel.
Képesség kiterjesztése
A futtatható felület megvalósítása után kiterjesztheti az osztályt. A Java nem támogatja a többszörös öröklődést. A Thread osztály kiterjesztése után nem tud más osztályt kiterjeszteni.
Kód karbantarthatósága
A futtatható felület karbantarthatóbbá teszi a kódot. A Thread osztályban a karbantartás időigényes.

Összefoglaló – Futtatható vs szál

Egy folyamat több részfolyamatra van osztva, hogy egyszerre több feladatot is végrehajthassanak. Ezeket az alfolyamatokat szálaknak nevezzük. A szál példányosítása történhet a Runnable felület megvalósításával vagy a szálosztály kiterjesztésével. Könnyű kiterjeszteni a Thread osztályt, de ez nem jobb objektum-orientált programozási gyakorlat. A Runnable implementációja során sok szál megoszthatja ugyanazt a szálobjektumot, míg a kiterjesztett szál osztályban minden szálhoz egyedi objektum tartozik. Ez a különbség a Runnable és a Thread között. A Thread osztályban több objektum létrehozása több memóriát fogyaszthat.

A Runnable vs Thread PDF-jének letöltése

Letöltheti ennek a cikknek a PDF-verzióját, és offline célokra használhatja az idézet jegyzetének megfelelően. Kérjük, töltse le a PDF verziót innen. Különbség a futtatható és a szál között

Ajánlott: