Huvudskillnad : Tråd och Process är två nära besläktade termer i multi-threading. Huvudskillnaden mellan de två termerna är att trådarna är en del av en process, dvs en process kan innehålla en eller flera trådar, men en tråd kan inte innehålla en process.
I programmeringen finns det två grundläggande enheter för utförande: processer och trådar. De utför båda en rad instruktioner. Båda initieras av ett program eller operativsystemet. Denna artikel hjälper till att skilja mellan de två enheterna.
En process har en fristående exekveringsmiljö. Den har en komplett uppsättning privata grundläggande körtidsresurser. i synnerhet har varje process sitt eget minnesutrymme. Processer anses ofta likna andra program eller applikationer. En enskild applikation kan dock faktiskt vara en uppsättning samarbetsprocesser. För att underlätta kommunikationen mellan processerna använder de flesta operativsystemen Inter Process Communication (IPC) resurser, såsom rör och uttag. IPC-resurserna kan också användas för kommunikation mellan processer på olika system. De flesta applikationer i en virtuell maskin körs som en enda process. Det kan dock skapa ytterligare processer med hjälp av ett processbyggareobjekt.
I datorer kan en tråd utföra den minsta sekvensen av programmerade instruktioner som kan hanteras oberoende av ett operativsystem. Applikationerna för trådar och processer skiljer sig från ett operativsystem till ett annat. Gängorna är emellertid gjorda av och existerar inom en process; varje process har minst en. Flera trådar kan också finnas i en process och dela resurser, vilket hjälper till effektiv kommunikation mellan trådar.
På en enda processor sker multitasking när processorn växlar mellan olika trådar; det är känt som multithreading. Växlingen sker så ofta att trådarna eller uppgifterna uppfattas att köras samtidigt. Trådar kan verkligen vara samtidiga på ett multiprocessor eller multi-core-system, med varje processor eller kärna som utför de separata trådarna samtidigt.
Sammanfattningsvis kan trådar betraktas som lätta processer, eftersom de innehåller enkla uppsättningar av instruktioner och kan köras inom en större process. Datorer kan köra flera trådar och processer samtidigt.
Jämförelse mellan process och tråd:
Bearbeta | Tråd | |
Definition | En exekverande instans av ett program kallas en process. | En tråd är en delmängd av processen. |
Bearbeta | Den har en egen kopia av datasegmentet för moderprocessen. | Den har direkt tillgång till datasegmentet i sin process. |
Kommunikation | Processer måste använda interprocess kommunikation för att kommunicera med syskonprocesser. | Tråd kan kommunicera direkt med andra trådar i processen. |
Allmänna omkostnader | Processer har betydande kostnader. | Trådarna har nästan ingen overhead. |
Skapande | Nya processer kräver dubbelarbete av moderprocessen. | Nya trådar skapas enkelt. |
Kontrollera | Processer kan endast utöva kontroll över barnprocesser. | Trådar kan utöva stor kontroll över trådar av samma process. |
Förändringar | Alla förändringar i föräldraprocessen påverkar inte barnprocesser. | Alla ändringar i huvudgänget kan påverka beteendet hos processens andra trådar. |
Minne | Kör i separata minnesutrymmen. | Kör i delade minnesutrymmen. |
Filbeskrivningar | De flesta filbeskrivningar delas inte. | Den delar filbeskrivningar. |
Filsystem | Det finns ingen delning av filsystemkontext. | Det delar filsystemets sammanhang. |
Signal | Det delar inte signalhantering. | Den delar signalhantering. |
Kontrollerad av | Processen styrs av operativsystemet. | Trådar styrs av programmeraren i ett program. |
Beroende | Processerna är oberoende. | Trådar är beroende. |