Vlákno (program)
Z Wikipedie, otevřené encyklopedie
Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces a každý proces má alespoň jedno vlákno, ve kterém počítá. Dříve platilo, že proces měl jen jedno vlákno (přesněji, nebylo důvod tyto pojmy odlišovat), dnes je stále více programů multithreadových, tedy uvnitř jednoho procesu (a v jednom adresovém prostoru, tedy se sdílenou pamětí) jim může zároveň běžet více vláken. Vlákno je tedy základní jednotku pro plánovač operačního systému.
Praktickým rozdílem mezi multithreadovým a multiprocesovým multitaskingem je kromě sdílené paměti (která některé věci usnadňuje a jiné naopak ztěžuje) režie při přepínání: přepnutí mezi vlánky bývá výrazně rychlejší a někdy je možné provést ho bez volání jádra operačního systému. Rychlejší může být i vytváření a rušení vlákna a vlákno spotřebuje méně paměti, což je důležité pro aplikace které používají stovky nebo více vláken.
Vlákna je možné vytvořit i čistě aplikačně bez operačního systému (například pokud podporu multithreadingu nemá). Takto vzniklá vlákna poté můžete pouštět postupně v jednom vláknu operačního systému nebo takzvaně m:n, tedy v několika vláknech operačního systému současně pouštět větší počet aplikačních vláken. Toto řešení sice není tak dobré jako řešení s podporou operačního systému - například volání služby operačního systému zablokuje "větší" vlákno OS a ne jenom aplikační vlákno - ale pro některé úlohy může být stále rychlejší.