Sobes.tech
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)"
    }
}