Obsah:
Definice - Co znamená multithreading?
Vícevláknové zpracování je typ prováděcího modelu, který umožňuje existenci více podprocesů v kontextu procesu tak, že provádějí samostatně, ale sdílejí své procesní prostředky. Vlákno udržuje seznam informací důležitých pro jeho provedení, včetně plánu priority, obsluhy výjimek, sady registrů CPU a stavu zásobníku v adresovém prostoru svého hostitelského procesu.
Vícevláknové zpracování se také nazývá závitování.
Techopedia vysvětluje multithreading
Vlákno může být užitečné v systému s jedním procesorem tím, že hlavní podprocesové vlákno může reagovat na vstup uživatele, zatímco další pracovní vlákno může provádět dlouhodobé úkoly, které nevyžadují zásah uživatele na pozadí. Vlákno v systému s více procesory má za následek skutečné souběžné provádění vláken na více procesorech, a je proto rychlejší. Vyžaduje však pečlivější programování, aby se zabránilo neintuitivnímu chování, jako jsou závodní podmínky, zablokování atd.
Operační systémy používají navlékání vláken dvěma způsoby:
- Preventivní multithreading, ve kterém je přepínač kontextu ovládán operačním systémem. Přepínání kontextu může být provedeno v nevhodném čase, Proto by vlákno s vysokou prioritou mohlo být nepřímo předepřeno vláknem s nízkou prioritou.
- Kooperativní multithreading, ve kterém je přepínání kontextu řízeno vláknem. To by mohlo vést k problémům, jako jsou zablokování, pokud je vlákno blokováno a čeká na uvolnění zdroje.
32bitové a 64bitové verze systému Windows používají preventivní multithreading, ve kterém je dostupný čas procesoru sdílen, takže všechna vlákna získají stejný časový řez a jsou obsluhovány v režimu založeném na frontě. Během přepínání podprocesů je kontext předpjatého podprocesu uložen a znovu načten do dalšího podprocesu ve frontě. Časový řez je tak krátký, že se zdá, že běží podprocesy paralelně.
Tato definice byla napsána v kontextu počítačové architektury