Sobes.tech
Middle

Kuo skiriasi eilė ir srautas?

sobes.tech AI

Atsakymas iš AI

Gija (Thread) - tai mažiausia vykdymo planavimo vienetė operacinėje sistemoje. Ji atstovauja atskirą kodo vykdymo kelią.

Eilė (Queue) - tai duomenų struktūra arba, konkurencijos API kontekste, mechanizmas organizuoti ir vykdyti užduotis (kodo blokus) seka. Eilė nustato tvarką, kuria užduotys bus perduotos gijai vykdymui.

Pagrindiniai skirtumai:

Parametras Gija (Thread) Eilė (Queue)
Objektas Kodo vykdymo vienetas Mechanizmas organizuoti užduotis
Išteklius Reikalauja sisteminių išteklių kurti/valdyti Nėra skaičiavimo išteklių pats savaime
Planavimas Planuoja operacinė sistema Nustato tvarką, kaip užduotys bus perduotos gijoms
Užduotys Atlieka vieną užduotį vienu metu Turi daug užduočių vykdymui
iOS/macOS Žemo lygio valdymas (retai tiesiogiai) Aukšto lygio konkurencijos valdymas (DispatchQueue, OperationQueue)

iOS kūrimo metu dažniau dirbame su eilėmis (DispatchQueue) arba operacijomis (OperationQueue), kurios abstrakčiai valdo darbą su gijomis. Eilės sudeda užduotis teisinga tvarka, o gijų valdymo sistema (pvz., GCD) jas priskiria prie prieinamų gijų vykdymui.