Sobes.tech
Junior — Middle

Kas vyksta su srautais naudojant sync funkciją ir kuris srautas yra užblokuotas procese?

sobes.tech AI

Atsakymas iš AI

Daugiafunkcinio konteksto funkcija sync (pavyzdžiui, GCD iOS) vykdo užduotį sinchroniškai, tai yra, kviečiantis srautas yra užblokuotas, kol užduotis nebaigiama. Jei sync iškviesite iš pagrindinio srauto į eilę, kuri taip pat vykdoma pagrindiniame sraute, tai sukels deadlock'ą, nes pagrindinis srautas lauks užduoties pabaigos, kuri negali prasidėti, kol pagrindinis srautas nėra laisvas.

Todėl naudojant sync, kviečiantis srautas yra užblokuotas, ir kodo vykdymas yra sustabdytas iki užduoties pabaigos.