Kulcsfontosságú különbség : A szál és a folyamat két, egymással szorosan összefüggő kifejezés a multi-threadingben. A két kifejezés között a fő különbség az, hogy a szálak egy folyamat részét képezik, azaz egy folyamat tartalmazhat egy vagy több szálat, de a szál nem tartalmazhat folyamatot.
A programozás során két alapvető egység van: a folyamatok és a szálak. Mindkettő utasításokat hajt végre. Mindkettőt egy program vagy az operációs rendszer kezdeményezi. Ez a cikk segít megkülönböztetni a két egységet.
A folyamatnak önálló végrehajtási környezete van. Teljes körű privát alapvető futási időforrásokkal rendelkezik; minden egyes folyamat saját memóriával rendelkezik. A folyamatokat gyakran más programokhoz vagy alkalmazásokhoz hasonlónak tekintik. Azonban egy egységes kérelem működtetése valójában együttműködő folyamatok halmaza lehet. A folyamatok közötti kommunikáció megkönnyítése érdekében a legtöbb operációs rendszer az Inter Process Communication (IPC) erőforrásokat, például a csöveket és a csatlakozókat használja. Az IPC erőforrások felhasználhatók a különböző rendszerek folyamatai közötti kommunikációra is. A legtöbb virtuális gép alkalmazás egyetlen folyamatként fut. Ez azonban további folyamatokat hozhat létre egy folyamatépítő objektum használatával.
A számítógépekben a szál még a programozott utasítások legkisebb sorát is végrehajthatja, amelyet egy operációs rendszer kezelhet függetlenül. A szálak és a folyamatok alkalmazásai operációs rendszerenként különböznek. A szálak azonban egy folyamatban vannak és léteznek; minden folyamat legalább egy. Több szál is létezhet egy folyamatban és megoszthatja az erőforrásokat, ami segít a szálak közötti hatékony kommunikációban.
Egy processzoron a multitasking úgy történik, hogy a processzor átkapcsol a különböző szálak között; ez többszálú. A váltás olyan gyakran történik, hogy a szálak vagy feladatok egyidejűleg futnak. A szálak valóban párhuzamosak lehetnek egy többprocesszoros vagy többmagos rendszeren, ahol minden processzor vagy mag egyszerre hajtja végre a különálló szálakat.
Összefoglalva, a szálak könnyű folyamatnak tekinthetők, mivel egyszerű utasításokat tartalmaznak, és egy nagyobb folyamaton belül futhatnak. A számítógépek egyszerre több szálat és folyamatot is futtathatnak.
A folyamat és a szál összehasonlítása:
Folyamat | cérna | |
Meghatározás | A program végrehajtó példányát folyamatnak nevezzük. | A szál a folyamat részhalmaza. |
Folyamat | Megvan a saját másolata a szülő folyamat adatszegmenséről. | Közvetlen hozzáféréssel rendelkezik a folyamat adatszegmenséhez. |
közlés | A folyamatoknak a folyamatok közötti kommunikációt kell használniuk a testvér folyamatokkal való kommunikációhoz. | A szálak közvetlenül kommunikálhatnak a folyamat más szálával. |
Általános költségek | A folyamatoknak jelentős a rezsi. | A szálak szinte nincsenek fölött. |
Teremtés | Az új folyamatok szükségessé teszik a szülő folyamat megkettőzését. | Új szálak könnyen létrehozhatók. |
Ellenőrzés | A folyamatok csak a gyermekfolyamatok felett gyakorolhatnak ellenőrzést. | A szálak jelentős ellenőrzést gyakorolhatnak ugyanazon folyamat szálain. |
Változtatások | A szülő folyamatban bekövetkező bármilyen változás nem befolyásolja a gyermekfolyamatokat. | A fő menetben bekövetkező bármilyen változás befolyásolhatja a folyamat többi szálának viselkedését. |
memória | Futtatás külön memóriaterületeken. | Futtatás megosztott memóriaterületeken. |
Fájl leírók | A legtöbb fájl leíró nincs megosztva. | Megosztja a fájlleírókat. |
Fájlrendszer | A fájlrendszer kontextusában nincs megosztás. | Megosztja a fájlrendszer kontextusát. |
Jel | Nem osztja a jelkezelést. | Megosztja a jelkezelést. |
Ellenőrzi | A folyamatot az operációs rendszer vezérli. | A szálakat programozó vezérli egy programban. |
Függőség | A folyamatok függetlenek. | A szálak függenek. |