Junior — Middle
Môžete vysvetliť koncept konkurencie a jeho úlohu v programovaní?
sobes.tech AI
Odpoveď od AI
Konkurentnosť je schopnosť programu vykonávať 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, konkurentnosť 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)"
}
}