Ključna razlika : Thread i Process su dva usko povezana termina u multi-threading. Glavna razlika između ta dva pojma je u tome što su niti dio procesa, tj. Proces može sadržavati jednu ili više niti, ali niti ne može sadržavati proces.
U programiranju postoje dvije osnovne jedinice izvršenja: procesi i niti. Oboje izvršavaju niz uputa. Oba se pokreću programom ili operativnim sustavom. Ovaj članak pomaže razlikovati dvije jedinice.
Proces ima samostalno izvršno okruženje. Ima kompletan skup privatnih osnovnih resursa za vrijeme izvođenja; posebice, svaki proces ima svoj vlastiti memorijski prostor. Procesi se često smatraju sličnim drugim programima ili aplikacijama. Međutim, vođenje jednog zahtjeva može zapravo biti skup procesa suradnje. Kako bi se olakšala komunikacija između procesa, većina operativnih sustava koristi resurse inter-komunikacijske komunikacije (IPC), kao što su cijevi i utičnice. IPC resursi se također mogu koristiti za komunikaciju između procesa na različitim sustavima. Većina aplikacija u virtualnom računalu pokreće se kao jedan proces. Međutim, može stvoriti dodatne procese pomoću objekta graditelja procesa.
U računalima nit može izvršiti čak i najmanji slijed programiranih naredbi koje operativni sustav može samostalno upravljati. Aplikacije niti i procesi razlikuju se od jednog do drugog operacijskog sustava. Međutim, niti su izrađene i postoje unutar procesa; svaki proces ima barem jedan. Više niti može postojati u procesu i dijeliti resurse, što pomaže u učinkovitoj komunikaciji između niti.
Na jednom procesoru, multitasking se odvija dok se procesor prebacuje između različitih niti; ona je poznata kao multithreading. Prebacivanje se događa tako često da se niti ili zadaci percipiraju da se pokreću u isto vrijeme. Niti mogu istodobno biti istodobni na višeprocesorskom ili višejezgrenom sustavu, pri čemu svaki procesor ili jezgra izvršava odvojene niti istovremeno.
Ukratko, niti se mogu smatrati laganim procesima jer sadrže jednostavne skupove uputa i mogu se izvoditi unutar većeg procesa. Računala mogu istovremeno pokretati više niti i procesa.
Usporedba procesa i teme:
Postupak | Nit | |
definicija | Izvršna instanca programa naziva se proces. | Nit je podskup procesa. |
Postupak | Ima vlastitu kopiju segmenta podataka nadređenog procesa. | Ima izravan pristup segmentu podataka svog procesa. |
Komunikacija | Procesi moraju koristiti međuprocesnu komunikaciju kako bi komunicirali sa sibling procesima. | Niti mogu izravno komunicirati s drugim nitima svog procesa. |
opći troškovi | Procesi imaju znatne režije. | Niti gotovo da i nemaju više glave. |
Stvaranje | Novi procesi zahtijevaju dupliciranje nadređenog procesa. | Jednostavno se stvaraju nove niti. |
Kontrolirati | Procesi mogu samo kontrolirati procese djeteta. | Niti mogu imati značajnu kontrolu nad niti istog procesa. |
promjene | Svaka promjena u nadređenom procesu ne utječe na procese djeteta. | Svaka promjena u glavnoj niti može utjecati na ponašanje drugih niti procesa. |
Memorija | Trčanje u zasebnim memorijskim prostorima. | Trčanje u dijeljenim memorijskim prostorima. |
Deskriptori datoteka | Većina deskriptora datoteka se ne dijeli. | Ona dijeli deskriptore datoteka. |
Sustav datoteka | Nema dijeljenja konteksta datotečnog sustava. | Ona dijeli kontekst datotečnog sustava. |
Signal | Ne dijeli upravljanje signalom. | Ona dijeli upravljanje signalom. |
Kontrolirano od | Procesom upravlja operativni sustav. | Niti kontrolira programer u programu. |
zavisnost | Procesi su neovisni. | Niti ovise. |