Klíčový rozdíl : Závit a proces jsou dva úzce příbuzné pojmy v multi-threading. Hlavní rozdíl mezi těmito dvěma výrazy spočívá v tom, že vlákna jsou součástí procesu, tj. Proces může obsahovat jeden nebo více vláken, ale vlákno nemůže obsahovat proces.
Při programování existují dvě základní jednotky: procesy a vlákna. Oba provádějí řadu instrukcí. Oba jsou iniciovány programem nebo operačním systémem. Tento článek pomáhá rozlišovat mezi těmito dvěma jednotkami.
Proces má samostatné prostředí pro provádění. Má kompletní sadu soukromých základních zdrojů běhu; zvláště každý proces má vlastní paměťový prostor. Procesy jsou často považovány za podobné jako jiné programy nebo aplikace. Ovšem běh jedné aplikace může být ve skutečnosti soubor spolupracujících procesů. Pro usnadnění komunikace mezi procesy využívá většina operačních systémů prostředky pro komunikaci mezi procesy (IPC), jako jsou potrubí a zásuvky. Zdroje IPC mohou být také použity pro komunikaci mezi procesy v různých systémech. Většina aplikací ve virtuálním stroji běží jako jediný proces. Může však vytvářet další procesy pomocí objektu stavitelů procesů.
V počítačích může vlákno provádět i nejmenší posloupnost naprogramovaných instrukcí, které lze nezávisle spravovat operačním systémem. Aplikace závitů a procesů se liší od jednoho operačního systému k druhému. Vlákna jsou však vyrobena a existují v procesu; každý proces má alespoň jeden. V procesu mohou existovat i více podprocesů a sdílet zdroje, což napomáhá efektivní komunikaci mezi vlákny.
V jednom procesoru probíhá víceúlohové zpracování, když procesor přepíná mezi různými vlákny; to je známé jako multithreading. Přepínání dochází tak často, že závity nebo úkoly jsou vnímány jako běžící současně. Vlákna mohou být opravdu souběžná na víceprocesorovém nebo vícejádrovém systému, přičemž každý procesor nebo jádro provádí současně samostatné závitové procesy.
Stručně řečeno, vlákna mohou být považovány za lehké procesy, protože obsahují jednoduché sady instrukcí a mohou běžet v rámci většího procesu. Počítače mohou provozovat více podprocesů a procesů najednou.
Srovnání mezi procesem a vláknem:
Proces | Vlákno | |
Definice | Executující instance programu se nazývá proces. | Vlákno je podmnožinou procesu. |
Proces | Má vlastní kopii datového segmentu nadřazeného procesu. | Má přímý přístup k datovému segmentu svého procesu. |
Sdělení | Procesy musí používat komunikaci mezi procesy pro komunikaci se sourozenými procesy. | Vlákna mohou přímo komunikovat s jinými vlákny svého procesu. |
Režijní náklady | Procesy mají značné režijní náklady. | Závity nemají téměř žádné režijní náklady. |
Tvorba | Nové procesy vyžadují duplikování nadřazeného procesu. | Nové podprocesy se snadno vytvářejí. |
Řízení | Procesy mohou ovládat pouze podřízené procesy. | Vlákna mohou mít značnou kontrolu nad vlákny stejného procesu. |
Změny | Jakákoli změna rodičovského procesu nemá vliv na podřízené procesy. | Jakákoli změna v hlavním podprocesu může ovlivnit chování ostatních podprocesů procesu. |
Paměť | Spuštění v oddělených paměťových prostorách. | Spuštění na sdílených paměťových místech. |
Deskriptory souborů | Většina deskriptorů souborů není sdílena. | Sdílí deskriptory souborů. |
Souborový systém | Neexistuje žádné sdílení kontextu souborového systému. | Sdílí kontext systému souborů. |
Signál | Nesdílí se se zpracováním signálu. | Sdílí to zpracování signálu. |
Kontrolováno | Proces je řízen operačním systémem. | Vlákna jsou řízena programátorem v programu. |
Závislost | Procesy jsou nezávislé. | Vlákna jsou závislá. |