Junior — Middle
Aké typy front sú k dispozícii v GCD a ako sa líšia v správaní a použití?
sobes.tech AI
Odpoveď od AI
V GCD sú k dispozícii nasledujúce typy front:
-
Sériové fronty (Serial Queues)
- Spúšťajú úlohy postupne, jedna po druhej.
- Používajú sa na synchronizáciu prístupu k zdrojom a na zabránenie súťažiam.
- Je možné vytvárať vlastné sériové fronty.
-
Súbežné fronty (Concurrent Queues)
- Spúšťajú viacero úloh súčasne.
- Existujú globálne súbežné fronty s rôznymi prioritami (QoS).
- Umožňujú efektívne využívanie systémov s viacerými procesormi.
-
Hlavná fronta (Main Queue)
- Sériová fronta spojená s hlavným vláknom aplikácie.
- Používa sa na aktualizáciu používateľského rozhrania a iných operácií, ktoré musia byť vykonané na hlavnom vlákne.
Rozdiely a použitie:
- Sériové fronty garantujú poradie vykonávania a zabraňujú súčasnému prístupu ku zdrojom.
- Súbežné fronty zvyšujú výkon prostredníctvom súčasného vykonávania úloh.
- Hlavná fronta je povinná pre prácu s UI v iOS.
Príklad vytvorenia a použitia sériovej fronty:
let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.async {
// Úloha 1
}
serialQueue.async {
// Úloha 2, ktorá bude vykonaná po Úlohe 1
}