Wątek a proces
Proces
W świecie programowania komputerowego proces to instancja lub wykonanie programu. Każdy proces zawiera kod programu i istniejące działanie. Może istnieć więcej niż jeden wątek, który może stanowić określony proces. Instrukcje mogą być wykonywane jednocześnie. Będzie to jednak zależeć od używanego systemu operacyjnego.
Zasadniczo procesy są bardzo istotnymi programami. Pochłaniają znaczne ilości pamięci. Dlatego są one w dużym stopniu zależne od zasobów dostępnych do wykonania. Powiedziawszy to wszystko, proces jest znany jako „proces wagi ciężkiej”.
Każdy proces odbywa się w innym miejscu 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 innego przydziału pamięci zajmuje czas na przejście do innego przydziału. Każdy proces ma własną przestrzeń adresową, która może pochłaniać znaczne ilości zasobów.
Proces jest niezależny od innych procesów. Tak więc, gdy proces macierzysty zostanie zmodyfikowany, niekoniecznie wpłynie to na inne procesy. Z powodu tego zachowania procesy wymagają komunikacji międzyprocesowej, 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, zwykle 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 tylko proces i dlatego jest również określany jako „lekki proces”.
Jest uważany za najmniejszą część programu, ponieważ stanowi niezależną sekwencyjną ścieżkę wykonania w programie. Przełączanie kontekstu między wątkami wymaga minimalnej ilości zasobów w przeciwieństwie do procesów. Wątki w zasadzie dzielą przestrzenie adresowe i można je również łatwo tworzyć.
Należy również wspomnieć, że zmiany wprowadzone w głównym 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 płynna.
Streszczenie:
1. Proces może zawierać więcej niż jeden wątek.
2. Proces jest uważany za „ciężki”, a wątek za „lekki”.
3. Procesy są silnie zależne od dostępnych zasobów systemowych, a wątki wymagają minimalnej ilości zasobów.
4. Modyfikacja głównego wątku może wpływać na kolejne wątki, podczas gdy zmiany w procesie nadrzędnym niekoniecznie wpływają na procesy potomne.
5. Wątki w procesie komunikują się bezpośrednio, podczas gdy procesy nie komunikują się tak łatwo.
6. Wątki można łatwo tworzyć, a procesy nie są tak proste.