Diferența principală : Subiectul și Procesul sunt doi termeni strâns corelați în multi-threading. Principala diferență dintre cei doi termeni este că firele fac parte dintr-un proces, adică un proces poate conține unul sau mai multe fire, dar firul nu poate conține un proces.
În programare, există două unități de bază de execuție: procese și fire. Ambele execută o serie de instrucțiuni. Ambele sunt inițiate de un program sau de sistemul de operare. Acest articol ajută la diferențierea între cele două unități.

Un proces are un mediu de execuție autonom. Dispune de un set complet de resurse privat de run-time; în special, fiecare proces are propriul spațiu de memorie. Procesele sunt deseori considerate similare cu alte programe sau aplicații. Cu toate acestea, funcționarea unei singure aplicații poate fi de fapt un set de procese care cooperează. Pentru a facilita comunicarea între procese, majoritatea sistemelor de operare folosesc resursele de comunicare inter-proces (IPC), cum ar fi conductele și prizele. Resursele IPC pot fi, de asemenea, utilizate pentru comunicarea între procese pe diferite sisteme. Majoritatea aplicațiilor dintr-o mașină virtuală funcționează ca un singur proces. Cu toate acestea, poate crea procese suplimentare utilizând un obiect de procesare a proceselor.

În computere, un fir poate executa chiar și cea mai mică secvență de instrucțiuni programate care pot fi gestionate independent de un sistem de operare. Aplicațiile firelor și proceselor diferă de la un sistem de operare la altul. Cu toate acestea, firele sunt formate din și există într-un proces; fiecare proces are cel puțin unul. Fire multiple pot exista, de asemenea, într-un proces și pot partaja resurse, ceea ce ajută la o comunicare eficientă între fire.
Pe un singur procesor, multitaskingul are loc în timp ce procesorul comută între diferite fire; este cunoscut sub numele de multithreading. Schimbarea se întâmplă atât de frecvent încât firele sau sarcinile sunt percepute că rulează în același timp. Firele pot fi cu adevărat concurente pe un sistem multiprocesor sau multi-core, fiecare procesor sau nucleu executând simultan firele separate.
În rezumat, firele pot fi considerate procese ușoare, deoarece conțin seturi simple de instrucțiuni și pot funcționa într-un proces mai amplu. Computerele pot rula mai multe fire și procese în același timp.
Comparație între Proces și Subiect:
Proces | Fir | |
Definiție | O instanță de execuție a unui program se numește proces. | Un fir este un subset al procesului. |
Proces | Are copia proprie a segmentului de date al procesului părinte. | Are acces direct la segmentul de date al procesului său. |
Comunicare | Procesele trebuie să utilizeze comunicarea între procese pentru a comunica cu procesele frățești. | Firele pot comunica direct cu alte fire ale procesului. |
Cheltuieli generale | Procesele au cheltuieli considerabile. | Firele nu au aproape nici o atitudine. |
Creare | Procesele noi necesită duplicarea procesului părinte. | Firele noi sunt create cu ușurință. |
Control | Procesele pot exercita controlul asupra proceselor copilului. | Firele pot exercita un control considerabil asupra firelor din același proces. |
Schimbări | Orice modificare a procesului părinte nu afectează procesele copilului. | Orice modificare a firului principal poate afecta comportamentul celorlalte fire ale procesului. |
Memorie | Rulați în spații separate de memorie. | Rulați în spațiile de memorie partajate. |
Descriptori de fișiere | Majoritatea descriptorilor de fișiere nu sunt partajate. | Acesta distribuie descriptorii de fișiere. |
Sistemul de fișiere | Nu există nicio partajare a contextului sistemului de fișiere. | El partajează contextul sistemului de fișiere. |
Semnal | Nu împarte manipularea semnalului. | Împarte manipularea semnalelor. |
Controlat de | Procesul este controlat de sistemul de operare. | Firele sunt controlate de un programator într-un program. |
Dependență | Procesele sunt independente. | Firele sunt dependente. |