Sobes.tech
Junior — Middle

Могу ли се јавити случајеви у којима коришћење sync позива на главној реди неће довести до међусобног блокирања?

sobes.tech АИ

Одговор од АИ

Poziv sync na glavnoj rednoj liniji obično dovodi do međusobnog blokiranja ako se pozove iz iste glavne redne linije, jer će čekati završetak bloka koji ne može da počne dok trenutni ne završi. Međutim, ako poziv sync na glavnoj liniji dolazi iz drugog niti (ne iz glavne linije), neće doći do međusobnog blokiranja, jer će glavni nit moći da izvrši blok i oslobodi poziv.

Primer:

DispatchQueue.main.sync {
    // Ovaj kod će se izvršiti bez međusobnog blokiranja ako dolazi iz pozadinske niti
}