Sobes.tech
Junior — Middle

Жалгыз кезекке sync ыкмасын чакырганда блоктоо кандай иштейт?

sobes.tech AI

AIден жооп

GCD (Grand Central Dispatch) ичинде сериалдык кезекке sync методу чакырылганда, учурдагы агым sync аркылуу берилген тапшырма аяктагына чейин бөгөттөлөт. Эгер sync ошол эле агымдан чакырылса, ал deadlock пайда болот, анткени кезек жаңы тапшырманы баштай албайт, доктур учурдагы тапшырма бүтө элек болсо, жана учурдагы агым жаңы тапшырманын аяктоосун күтүп турат.

Мисал:

let serialQueue = DispatchQueue(label: "com.мисал.serial")

serialQueue.sync {
    print("Тапшырма аткарылууда")
}
// Учурдагы агым тапшырма аяктагына чейин бөгөттөлөт

Мындан ары, ошол эле кезекке, ошол кезектеги тапшырмадан sync чакырбоо маанилүү, өз ара бөгөттөлүүнү алдын алуу үчүн.