Intern
Čo je synchronná úloha?
sobes.tech AI
Odpoveď od AI
Synchronná úloha je úloha, ktorej vykonávanie blokuje aktuálne vlákno až do jeho ukončenia. Pokiaľ synchronná úloha nie je ukončená, hlavné vlákno nemôže pokračovať.
Príklady použitia v iOS vývoji:
- Čítanie súboru z disku v hlavnom vlákne.
- Vykonanie sieťovej požiadavky pomocou
URLSession.shared.dataTask(with:url)bez použitia handlera ukončenia na inom vlákne.
Dôsledky používania synchronných úloh v hlavnom vlákne:
- Užívateľské rozhranie sa stáva neodpovedajúcim ("zamŕza").
- Je možné, že sa aktivuje watchdog timer a aplikácia spadne, ak úloha trvá príliš dlho.
Pre vykonávanie potenciálne dlhých operácií je vhodnejšie používať asynchrónne úlohy, aby sa neblokovalo hlavné vlákno a zachovala sa odozva aplikácie.