Ребят никак не могу понять daedlock, race condition понял, а вот deadlock никак(
Объясните плз
Почему когда вызываю DispatchQueue.main.sync {} в main потоке, идёт взаимная блокировка?
Я понимаю, что sync блокирует поток. Но ведь когда задача выполнится, main поток опять свободен.
И почему задача в DispatchQueue.main.sync {} не может быть выполнена?
И ещё тут же спрошу, другую задачу)
print("a")
DispatchQueue.main.async {
DispatchQueue.main.async {
print("b")
}
print("c")
}
print("d")
Почему ответ будет a, d, c, b ?
Потому что DispatchQueue.main.async {} уходит в конец очереди? что именно здесь происходит?