Ključna razlika : Thread in Process sta dva tesno povezana pojma v multi-threading. Glavna razlika med tema dvema izrazoma je, da so niti del procesa, tj. Proces lahko vsebuje eno ali več niti, vendar niti ne more vsebovati procesa.
Pri programiranju obstajata dve osnovni enoti izvrševanja: procesi in niti. Oba izvajata vrsto navodil. Oboje sproži program ali operacijski sistem. Ta člen pomaga razlikovati med obema enotama.
Proces ima samostojno izvedbeno okolje. Ima popoln nabor zasebnih osnovnih sredstev za izvajanje; zlasti ima vsak proces svoj prostor v pomnilniku. Procesi se pogosto obravnavajo kot podobni drugim programom ali aplikacijam. Vendar lahko izvajanje enotnega zahtevka dejansko pomeni niz sodelujočih procesov. Da bi olajšali komunikacijo med procesi, večina operacijskih sistemov uporablja vire IPC (Inter Process Communication), kot so cevi in vtičnice. Sredstva IPC se lahko uporabljajo tudi za komunikacijo med procesi na različnih sistemih. Večina aplikacij v navideznem stroju se izvaja kot en sam proces. Lahko pa ustvari dodatne procese z objektom graditelja procesov.
V računalnikih lahko nit izvaja tudi najmanjše zaporedje programiranih navodil, ki jih lahko operacijski sistem upravlja neodvisno. Aplikacije niti in procesi se razlikujejo od enega do drugega operacijskega sistema. Vendar pa so niti izdelane iz procesa in obstajajo znotraj njega; vsak proces ima vsaj enega. V procesu lahko obstajajo tudi več niti, ki si delijo vire, kar pomaga pri učinkoviti komunikaciji med niti.
Na enem procesorju poteka večopravilnost, ko procesor preklaplja med različnimi nitmi; znan je kot večnitnost. Preklapljanje se dogaja tako pogosto, da so niti ali naloge zaznane, da tečejo hkrati. Niti so lahko resnično sočasne na večprocesorskem ali večjedrnem sistemu, pri čemer vsak procesor ali jedro izvršuje ločene niti istočasno.
Skratka, niti se lahko obravnavajo kot lahki procesi, saj vsebujejo preproste sklope navodil in se lahko izvajajo v večjem procesu. Računalniki lahko hkrati izvajajo več niti in procesov.
Primerjava med procesom in nitjo:
Proces | Nit | |
Opredelitev | Izvedbeni primerek programa se imenuje proces. | Nit je podmnožica procesa. |
Proces | Ima lastno kopijo podatkovnega segmenta nadrejenega procesa. | Ima neposreden dostop do podatkovnega segmenta svojega procesa. |
Komunikacija | Procesi morajo uporabljati komunikacijo med procesi za komuniciranje s sorodstvenimi procesi. | Niti lahko neposredno komunicirajo z drugimi niti svojega procesa. |
Režijski stroški | Procesi imajo precejšnje režijske stroške. | Niti nimajo skoraj nobenih rež. |
Ustvarjanje | Novi procesi zahtevajo podvajanje matičnega procesa. | Nove niti se enostavno ustvarijo. |
Nadzor | Procesi lahko nadzorujejo samo otrokove procese. | Niti lahko precej nadzorujejo niti v istem procesu. |
Spremembe | Vsaka sprememba v nadrejenem procesu ne vpliva na otroške procese. | Vsaka sprememba glavne niti lahko vpliva na obnašanje drugih niti procesa. |
Spomin | Zaženi v ločenih prostorih pomnilnika. | Zaženi v prostorih s skupnim pomnilnikom. |
Deskriptorji datotek | Večina deskriptorjev datotek ni v skupni rabi. | Souporablja deskriptorje datotek. |
Datotečni sistem | V kontekstu datotečnega sistema ni skupne rabe. | Deluje v kontekstu datotečnega sistema. |
Signal | Ne deli skupne uporabe signala. | Deluje z upravljanjem s signalom. |
Kontrolirano z | Proces nadzira operacijski sistem. | Niti nadzoruje programer v programu. |
Odvisnost | Procesi so neodvisni. | Niti so odvisne. |