Wątek i proces

Anonim

Wątek vs proces

Proces

W świecie programowania komputerowego proces jest instancją lub wykonaniem programu. Każdy proces zawiera kod programu i istniejącą aktywność. Może istnieć więcej niż jeden wątek, który może stanowić konkretny proces. Instrukcje mogą być wykonywane jednocześnie. Będzie to jednak zależeć od używanego systemu operacyjnego.

Zasadniczo procesy są bardzo znaczącymi programami. Spożywają znaczne ilości pamięci. W związku z tym są one w dużym stopniu zależne od zasobów dostępnych do wykonania. Powiedziawszy to wszystko, proces znany jest jako "proces ciężki".

Każdy proces odbywa się w innej lokalizacji pamięci. Dlatego też, jeśli obecnych jest więcej procesów, przełączanie między każdym procesem jest bardzo kosztowne, ponieważ przejście z innej alokacji zabiera trochę czasu z każdej alokacji pamięci. Każdy proces ma swoją własną przestrzeń adresową, która może pożreć znaczne ilości podaży.

Proces jest niezależny od innych procesów. Zatem modyfikacja procesu nadrzędnego nie musi wpływać na inne procesy. Z powodu tego zachowania procesy wymagają komunikacji między procesami, aby mogły komunikować się ze swoim rodzeństwem.

Ponadto procesy, ze względu na ich znacznie bardziej złożony charakter, nie są tworzone z łatwością. Może to wymagać pewnego powielenia procesów, zazwyczaj procesu nadrzędnego, w celu uzyskania konstrukcji.

Wątek

Nawet przy minimalnych zasobach systemowych wątki mogą być wykonywane jednocześnie, aby osiągnąć określone zadanie. Powodem jest fakt, że wątek jest tylko sekwencją wykonawczą. Jest to jedynie proces, dlatego nazywany jest również "procesem lekkim".

Jest uważany za najmniejszą część programu, ponieważ jest niezależną sekwencyjną ścieżką wykonywania w ramach programu. Przełączanie kontekstów między wątkami wymaga minimalnej ilości zasobów w przeciwieństwie do procesów. W zasadzie nici dzielą przestrzenie adresowe i są łatwo tworzone.

Należy również wspomnieć, że zmiany wprowadzone do głównego wątku mogą mieć wpływ na zachowanie innych wątków w ramach tego samego procesu. Najwyraźniej komunikacja między wątkami w tym samym procesie jest bezpośrednia i bezproblemowa.

Streszczenie:

1. Proces może zawierać więcej niż jeden wątek. 2. Proces jest uważany za "ciężki", podczas gdy wątek jest uważany za "lekki". 3. Procesy są silnie uzależnione od zasobów systemowych dostępnych podczas gdy wątki wymagają minimalnych zasobów. 4. Modyfikowanie głównego wątku może wpływać na kolejne wątki, podczas gdy zmiany w procesie macierzystym niekoniecznie będą miały wpływ na procesy potomne. 5. Wątki wewnątrz procesu komunikują się bezpośrednio, podczas gdy procesy nie komunikują się tak łatwo. 6. Wątki są łatwe do utworzenia, podczas gdy procesy nie są proste.