Kluczowa różnica : wątek i proces to dwa ściśle powiązane terminy w wielowątkowości. Główna różnica między tymi dwoma terminami polega na tym, że wątki są częścią procesu, tj. Proces może zawierać jeden lub więcej wątków, ale wątek nie może zawierać procesu.
W programowaniu są dwie podstawowe jednostki wykonawcze: procesy i wątki. Obaj wykonują serię instrukcji. Oba są inicjowane przez program lub system operacyjny. Ten artykuł pomaga rozróżnić dwie jednostki.

Proces ma autonomiczne środowisko wykonawcze. Ma kompletny zestaw prywatnych podstawowych zasobów wykonawczych; w szczególności każdy proces ma swoją własną przestrzeń pamięci. Procesy są często uważane za podobne do innych programów lub aplikacji. Jednak uruchomienie pojedynczej aplikacji może w rzeczywistości być zbiorem współpracujących procesów. Aby ułatwić komunikację między procesami, większość systemów operacyjnych korzysta z zasobów komunikacji międzyprocesowej (IPC), takich jak rury i gniazda. Zasoby IPC mogą być również wykorzystywane do komunikacji między procesami w różnych systemach. Większość aplikacji na maszynie wirtualnej działa jako pojedynczy proces. Może jednak tworzyć dodatkowe procesy za pomocą obiektu konstruktora procesów.

W komputerach wątek może wykonywać nawet najmniejszą sekwencję zaprogramowanych instrukcji, którymi można zarządzać niezależnie przez system operacyjny. Aplikacje wątków i procesów różnią się w zależności od systemu operacyjnego. Jednak wątki są tworzone i istnieją w ramach procesu; każdy proces ma co najmniej jeden. Wiele wątków może również istnieć w procesie i współużytkować zasoby, co pomaga w wydajnej komunikacji między wątkami.
Na pojedynczym procesorze wielozadaniowość ma miejsce, gdy procesor przełącza się między różnymi wątkami; jest znany jako wielowątkowość. Przełączanie odbywa się tak często, że wątki lub zadania są postrzegane jako działające w tym samym czasie. Wątki mogą być rzeczywiście współbieżne w systemie wieloprocesorowym lub wielordzeniowym, przy czym każdy procesor lub rdzeń wykonuje jednocześnie oddzielne wątki.
Podsumowując, wątki mogą być uważane za lekki proces, ponieważ zawierają proste zestawy instrukcji i mogą działać w ramach większego procesu. Komputery mogą uruchamiać wiele wątków i procesów w tym samym czasie.
Porównanie procesu i wątku:
Proces | Wątek | |
Definicja | Wykonująca instancja programu nazywa się procesem. | Wątek jest podzbiorem procesu. |
Proces | Ma własną kopię segmentu danych procesu nadrzędnego. | Ma bezpośredni dostęp do segmentu danych swojego procesu. |
Porozumiewanie się | Procesy muszą wykorzystywać komunikację między procesami do komunikowania się z procesami rodzeństwa. | Wątki mogą bezpośrednio komunikować się z innymi wątkami tego procesu. |
Koszty ogólne | Procesy mają znaczny narzut. | Wątki prawie nie mają narzutów. |
kreacja | Nowe procesy wymagają powielenia procesu nadrzędnego. | Nowe wątki są łatwo tworzone. |
Kontrola | Procesy mogą kontrolować procesy potomne. | Wątki mogą sprawować znaczną kontrolę nad wątkami tego samego procesu. |
Zmiany | Każda zmiana w procesie macierzystym nie ma wpływu na procesy potomne. | Każda zmiana w głównym wątku może wpływać na zachowanie innych wątków procesu. |
Pamięć | Uruchom w oddzielnych obszarach pamięci. | Uruchom we wspólnych miejscach pamięci. |
Deskryptory plików | Większość deskryptorów plików nie jest udostępniana. | Podziela deskryptory plików. |
System plików | Nie ma współdzielenia kontekstu systemu plików. | Udostępnia kontekst systemu plików. |
Sygnał | Nie udostępnia on obsługi sygnałów. | Łączy obsługę sygnałów. |
Kontrolowany przez | Proces jest kontrolowany przez system operacyjny. | Wątki są kontrolowane przez programistę w programie. |
Zależność | Procesy są niezależne. | Wątki są zależne. |