Thread (multithreading): Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
Bronto (diskusia | príspevky)
Bez shrnutí editace
Bronto (diskusia | príspevky)
Bez shrnutí editace
Riadok 5:
Použitie threadov je spôsob, ako rozdeliť program na dva alebo viac rovnocenne bežiacích úloh. Viaceré vlákna môžu byť vykonávané naraz – nazýva sa to [[multithreading]] (porovnaj s [[multiprogramovanie]]). Multithreading sa obyčajne zabezpečuje buď [[zdieľanie času|rozdeľovaním času]] (kde jeden procesor prepína medzi vykonávaním rôznych vlákien) alebo [[paralelné spracovanie dát]] - [[multiprocessing]] (kde sú vlákna vykonávané na viacerých procesoroch ([[symmetric multiprocessing|SMP]]) či jadrách procesora ([[chip multiprocessing|CMP]])). Vlákno sa podobá [[proces]]u, odlišný je spôsob zdieľania prostriedkov a súvisiaci kontext.
 
Veľa moderných operačných systémov priamo podporuje obidva spôsoby – rozdeľovanie času aj multiprocessing s plánovaním procesov ([[scheduling]]). Jadro operačného systému dovoľuje programátorom manipulovať s vláknami cez [[systémovévyvolanie volaniesystému|systémovévyvolania volaniasystému]]. Niektoré implementácie sa nazývaju vlákna jadra ([[kernel thread]]s) alebo odľahčené procesy. Program može mať vlákna implementované aj bez podpory operačného systému pomocou časovačov, signálov, alebo inak. Je však potrebné prerušiť vlastné vykonávanie a odtiaľ urobiť vlastné rozdeľovanie času. Tieto vlákna sa niekedy nazývaju užívateľské.
 
Iné použitie pojmu vlákno je pre vláknový kód, čo je časť kódu pozostávajúca z volaniavyvolania podprogramu napísaná bez použitia inštrukcii na volanievyvolanie podprogramu a spracovania interpretom alebo procesorom. Existujú dva jazyky pre vláknový kód a sú to [[Forth]] a skorší programovací jazyk [[B (programovací jazyk)|B]].
 
[[en:Thread (computer science)]]