Back to questions
Вкусно и точка
Junior — Middle
66
Обязательно ли возникнет взаимная блокировка при использовании синхронизации на основной очереди?
Companies where asked
Answer from AI
sobes.tech AI
Взаимная блокировка (deadlock) при использовании синхронизации на основной очереди (main queue) не возникает обязательно, но может случиться при неправильном использовании. Основная очередь — это последовательная очередь, и если вы из неё синхронно вызываете код, который тоже пытается выполнить что-то на основной очереди, то поток заблокируется, ожидая самого себя.
Например, если на главном потоке вызвать dispatch_sync на главную очередь, это приведёт к взаимной блокировке, так как задача не может выполниться, пока текущая не завершится.
Поэтому синхронные вызовы на главную очередь из главного потока нужно избегать. Асинхронные вызовы или использование других очередей помогут избежать deadlock.