Sobes.tech
Middle

Aký je rozdiel medzi frontou a vláknom?

sobes.tech AI

Odpoveď od AI

Vlákno (Thread) - je najmenšia jednotka plánovania vykonávania v operačnom systéme. Predstavuje samostatnú cestu vykonávania kódu.

Fronta (Queue) - je dátová štruktúra alebo, v kontexte API pre súbežnosť, mechanizmus na organizáciu a sekvenčné vykonávanie úloh (blokov kódu). Fronta určuje poradie, v akom budú úlohy odoslané vláknu na vykonanie.

Hlavné rozdiely:

Parameter Vlákno (Thread) Fronta (Queue)
Objekt Jednotka na vykonávanie kódu Mechanizmus na organizáciu úloh
Zdroj Vyžaduje systémové zdroje na vytvorenie/riadenie Nie je sám o sebe výpočtovým zdrojom
Plánovanie Plánované operačným systémom Určuje poradie, v akom budú úlohy odoslané vláknam
Úlohy Vykonáva jednu úlohu naraz Obsahuje viacero úloh na vykonanie
iOS/macOS Nízkoúrovňové riadenie (zriedka priamo) Vysokoúrovňové riadenie súbežnosti (DispatchQueue, OperationQueue)

V vývoji pre iOS pracujeme častejšie s frontami (napríklad DispatchQueue) alebo operáciami (OperationQueue), ktoré abstraktne riadia prácu s vláknami. Fronty kladú úlohy v správnom poradí a systém riadenia vlákien (napríklad GCD) ich priraďuje dostupným vláknam na vykonanie.