Spisu treści:
Definicja - Co oznacza wielowątkowość?
Wielowątkowość to rodzaj modelu wykonywania, który pozwala na istnienie wielu wątków w kontekście procesu, dzięki czemu wykonują one niezależnie, ale współużytkują swoje zasoby procesu. Wątek przechowuje listę informacji istotnych dla jego wykonania, w tym harmonogram priorytetów, procedury obsługi wyjątków, zestaw rejestrów procesora i stan stosu w przestrzeni adresowej procesu hostowania.
Wielowątkowość jest również znana jako gwintowanie.
Techopedia wyjaśnia Wielowątkowość
Wątek może być przydatny w systemie jednoprocesorowym, ponieważ główny wątek wykonawczy może reagować na dane wejściowe użytkownika, podczas gdy dodatkowy wątek roboczy może wykonywać długotrwałe zadania, które nie wymagają interwencji użytkownika w tle. Wątkowanie w systemie wieloprocesorowym powoduje prawdziwe współbieżne wykonywanie wątków na wielu procesorach, a zatem jest szybsze. Wymaga to jednak bardziej starannego programowania, aby uniknąć nieintuicyjnych zachowań, takich jak warunki wyścigowe, impasy itp.
Systemy operacyjne używają wątkowania na dwa sposoby:
- Zapobiegawcza wielowątkowość, w której przełącznik kontekstu jest kontrolowany przez system operacyjny. Przełączanie kontekstu może być wykonywane w nieodpowiednim czasie, dlatego wątek o wysokim priorytecie może być pośrednio przejmowany przez wątek o niskim priorytecie.
- Wielowątkowość kooperacyjna, w której przełączanie kontekstu jest kontrolowane przez wątek. Może to prowadzić do problemów, takich jak zakleszczenia, jeśli wątek zostanie zablokowany w oczekiwaniu na zwolnienie zasobu.
32- i 64-bitowe wersje systemu Windows korzystają z wyprzedzającego wielowątkowości, w którym dostępny czas procesora jest współdzielony, dzięki czemu wszystkie wątki otrzymują równy przedział czasu i są obsługiwane w trybie opartym na kolejce. Podczas przełączania wątków kontekst uprzednio opróżnionego wątku jest zapisywany i ponownie ładowany do następnego wątku w kolejce. Przedział czasu jest tak krótki, że uruchomione wątki wydają się działać równolegle.
Ta definicja została napisana w kontekście architektury komputerowej