Junior — Middle
Můžete vysvětlit koncept konkurence a jeho roli v programování?
sobes.tech AI
Odpověď od AI
Konkurence je schopnost programu vykonávat viacero úloh súčasne alebo ich vykonávanie prekryvať v čase. V programovaní je to dôležité na zvýšenie efektívnosti využívania zdrojov, zlepšenie odozvovej schopnosti aplikácií a zrýchlenie spracovania dát.
Na iOS, napríklad, konkurencia pomáha vykonávať sieťové požiadavky, spracovanie dát a aktualizácie rozhrania paralelne, bez blokovania hlavného vlákna. Na tento účel sa používajú nástroje ako GCD (Grand Central Dispatch) a OperationQueue.
Príklad použitia GCD pre asynchrónnu úlohu:
DispatchQueue.global(qos: .background).async {
// Dlhá úloha
let result = performHeavyCalculation()
DispatchQueue.main.async {
// Aktualizácia UI
self.label.text = "Výsledok: \(result)"
}
}