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.