Obsah:
Definícia - Čo znamená multithreading?
Multithreading je typ modelu vykonávania, ktorý umožňuje existenciu viacerých vlákien v kontexte procesu tak, že vykonávajú samostatne, ale zdieľajú svoje prostriedky procesu. Vlákno udržiava zoznam informácií relevantných pre jeho vykonávanie vrátane plánu priorít, obsluhy výnimiek, sady registrov CPU a stavu zásobníka v adresovom priestore svojho hostiteľského procesu.
Viacvláknové spracovanie vlákien je známe aj ako vlákna.
Techopedia vysvetľuje multithreading
Vlákno môže byť užitočné v systéme s jedným procesorom tým, že umožňuje hlavnému vláknu vykonávania reagovať na vstup používateľa, zatiaľ čo ďalšie vlákno pracovníka môže vykonávať dlhodobé úlohy, ktoré nevyžadujú zásah používateľa na pozadí. Vlákno v systéme s viacerými procesormi má za následok skutočné súčasné vykonávanie vlákien vo viacerých procesoroch, a preto je rýchlejšie. Vyžaduje si však starostlivejšie programovanie, aby sa predišlo neintuitívnemu správaniu, ako sú pretekárske podmienky, zablokovanie atď.
Operačné systémy používajú vlákna dvoma spôsobmi:
- Preventívne multithreading, v ktorom je prepínač kontextu riadený operačným systémom. Kontextové prepínanie by sa mohlo vykonávať v nevhodnom čase, Z tohto dôvodu by vlákno s vysokou prioritou mohlo nepriamo predchádzať vlákno s nízkou prioritou.
- Kooperatívne viacvláknové spracovanie, v ktorom je prepínanie riadené vláknom. To by mohlo viesť k problémom, ako sú napríklad zablokovania, ak je vlákno zablokované a čaká na uvoľnenie prostriedku.
32-bitové a 64-bitové verzie systému Windows používajú preventívne multithreading, v ktorom je zdieľaný dostupný čas procesora, takže všetky vlákna získajú rovnaký časový úsek a sú obsluhované v režime založenom na frontoch. Počas prepínania vlákien sa kontext vopred vyprázdneného vlákna ukladá a znova načíta do nasledujúceho vlákna vo fronte. Časový segment je tak krátky, že sa zdá, že bežiace vlákna sa vykonávajú paralelne.
Táto definícia bola napísaná v kontexte počítačovej architektúry