Wielowątkowość: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
PG (dyskusja | edycje)
drobne redakcyjne
m jęz.
Linia 7:
* wszystkie wątki wykonują się w ramach tylko jednego programu ([[proces (informatyka)|procesu]]) – innymi słowy jeden proces posiada wiele instancji wykonawczych (wątków)
* wątki zostały wprowadzone, aby umożliwić [[przetwarzanie współbieżne]], np gdy zachodzi potrzeba wykonania wielu zadań jednocześnie. Może się to wiązać również ze zwiększeniem wydajności przetwarzania o ile istnieją odpowiednie zasoby sprzętowe (co najmniej wiele procesorów jednordzeniowych lub pojedynczy procesor wielordzeniowy). Należy jednak pamiętać, iż zastosowanie wątków może obniżyć wydajność, ponieważ najczęściej wymagane jest przy tym wprowadzenie odpowiednich mechanizmów synchronizacji, takich jak np. [[Semafor (informatyka)|semafory]];
* wszystkie wątki danego procesu współdzielą samą wirtualną [[Przestrzeń adresowa|przestrzeń adresową]] (mają dostęp do tych samych „egzemplarzy” [[Zmienna (informatyka)|zmiennych]], [[Obiekt (programowanie obiektowe)|obiektów]] i [[Struktura (programowanie)|struktur]]) i korzystają z tych samych zasobów systemowych;
* komunikacja między wątkami w odróżnieniu od procesów jest bardzo łatwa do wykonania – w przypadku wątków wystarczy odwoływać się do tych samych zmiennych i obiektów – komunikacja między procesami wymaga zastosowania mechanizmów [[Komunikacja międzyprocesowa|IPC]] ([[język angielski|ang.]] ''InterProcess Communication'');
* współdzielenie wirtualnej [[Przestrzeń adresowa|przestrzeni adresowej]] niesie zagrożenie – jeden „wadliwy” wątek może zagrozić wykonaniu całego procesu (programu);