Co to jest wielowątkowość?

W świecie informatyki wielowątkowość to zadanie polegające na stworzeniu nowego wątku wykonania w ramach istniejącego procesu, a nie na uruchamianiu nowego procesu w celu rozpoczęcia funkcji. Zasadniczo zadanie wielowątkowości ma na celu rozsądniejsze wykorzystanie zasobów komputera poprzez umożliwienie jednoczesnego wykorzystania zasobów, które są już używane, przez niewielki wariant tego samego procesu. Podstawowa koncepcja wielowątkowości istnieje już od jakiegoś czasu, ale zyskała szerszą uwagę, gdy komputery stały się bardziej powszechne w latach dziewięćdziesiątych.

Ta forma multipleksowania z podziałem czasu tworzy środowisko, w którym program jest skonfigurowany tak, aby umożliwić procesom rozwidlenie lub podzielenie na dwa lub więcej wątków wykonania. Równoległe wykonywanie wątków w ramach tego samego programu jest często reklamowane jako bardziej efektywne wykorzystanie zasobów systemu komputerowego, zwłaszcza w przypadku komputerów stacjonarnych i laptopów. Pozwalając programowi na obsługę wielu zadań w modelu wielowątkowym, system nie musi pozwalać dwóm oddzielnym programom na inicjowanie dwóch oddzielnych procesów i jednoczesne korzystanie z tych samych plików.

Chociaż jest wielu zwolenników wielowątkowości, są też tacy, którzy rozumieją ten proces jako potencjalnie szkodliwy dla zadania obliczeniowego. Niektórzy uważają, że podział czasu, który jest nieodłączny od oddzielenia się rozwidlenia lub wątku od działającego procesu, tworzy okoliczności, w których może wystąpić konflikt między wątkami podczas próby współdzielenia pamięci podręcznej lub innych zasobów sprzętowych. Istnieje również obawa, że ​​działanie wielowątkowości może skrócić czas odpowiedzi każdego pojedynczego wątku w procesie, skutecznie niwelując wszelkie oszczędności czasu generowane przez konfigurację.

Jednak wielowątkowość pozostaje jedną z realnych opcji wielozadaniowości komputera. Nie jest niczym niezwykłym, że procesor umożliwia zarówno wielowątkowość, jak i tworzenie nowych procesów do obsługi różnych zadań. Daje to użytkownikowi końcowemu wszystkie korzyści płynące z przełączania kontekstu, przy jednoczesnym jak najlepszym wykorzystaniu dostępnych zasobów.