Discussie versus proces
Werkwijze
In de wereld van computerprogrammering is een proces een instantie of uitvoering van een programma. Elk proces bevat een programmacode en de bestaande activiteit. Er kan meer dan één thread zijn die een bepaald proces kan vormen. Instructies kunnen gelijktijdig worden uitgevoerd. Het hangt echter af van het besturingssysteem dat wordt gebruikt.
In principe zijn processen zwaar substantiële programma's. Ze verbruiken aanzienlijke hoeveelheden geheugen. Daarom zijn ze sterk afhankelijk van de middelen die beschikbaar zijn voor uitvoering. Dit gezegd zijnde, staat een proces bekend als een "zwaargewicht proces".
Elk proces vindt plaats op een andere geheugenlocatie. Als er dus meer processen aanwezig zijn, is het schakelen tussen elk proces erg duur omdat het enige tijd kost om elke geheugentoewijzing om te schakelen naar een andere toewijzing. Elk proces heeft zijn eigen adresruimte die aanzienlijke hoeveelheden voeding kan opslokken.
Een proces is onafhankelijk van andere processen. Dus wanneer een bovenliggend proces is gewijzigd, zal dit niet noodzakelijkerwijs andere processen beïnvloeden. Vanwege dit gedrag vereisen processen communicatie tussen processen, zodat ze kunnen communiceren met hun broers en zussen.
Bovendien worden processen, vanwege hun veel complexere karakter, niet gemakkelijk gemaakt. Dit kan enige duplicatie van processen vereisen, meestal ouderproces, om constructie te bereiken.
Draad
Zelfs met minimale systeembronnen kunnen threads tegelijkertijd worden uitgevoerd om een specifieke taak te bereiken. De reden is dat een thread slechts een uitvoeringsreeks is. Het zit alleen in een proces en daarom wordt het ook wel een "lichtgewicht proces" genoemd.
Het wordt beschouwd als het kleinste deel van een programma omdat het een onafhankelijk sequentieel pad van uitvoering binnen een programma is. De contextomschakeling tussen threads vereist minimale hoeveelheden resource in tegenstelling tot processen. Discussies delen in essentie adresruimten en ze kunnen ook gemakkelijk worden gemaakt.
Er moet ook worden vermeld dat wijzigingen die in de hoofdthread worden aangebracht, van invloed kunnen zijn op het gedrag van de andere threads binnen hetzelfde proces. Blijkbaar is communicatie tussen threads in hetzelfde proces direct en naadloos.
Samenvatting:
1. Een proces kan meer dan één thread bevatten.
2. Een proces wordt als "zwaargewicht" beschouwd terwijl een thread als "lichtgewicht" wordt beschouwd.
3. Processen zijn sterk afhankelijk van beschikbare systeembronnen, terwijl threads minimale hoeveelheden bronnen vereisen.
4. Het wijzigen van een hoofdthread kan van invloed zijn op volgende threads, terwijl wijzigingen in een bovenliggend proces niet noodzakelijk van invloed zijn op onderliggende processen.
5. Threads in een proces communiceren direct terwijl processen niet zo gemakkelijk communiceren.
6. Threads zijn gemakkelijk te maken, terwijl processen niet zo eenvoudig zijn.