
Почему DispatchQueue.sync приводит к deadlock?
Для начала разберемся кто это вообще такой ваш мертвый замок. Представим ситуацию в ресторане. Повар спрашиваетповара официанта какой суп готовить, а официант отвечает, что скажет, только когда приготовишь суп.
Код выше обязательно придет к сбою. Очередь выполняет код синхронно. Второй клоужер не может запуститься, пока первый не закончится. Первый же клоужер не может выполниться, пока второй не запустится.
Для начала разберемся кто это вообще такой ваш мертвый замок. Представим ситуацию в ресторане. Повар спрашивает
Код выше обязательно придет к сбою. Очередь выполняет код синхронно. Второй клоужер не может запуститься, пока первый не закончится. Первый же клоужер не может выполниться, пока второй не запустится.