> Сколько минимум потоков нужно для дедлока? (iOS, Swift)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Сбер
Стек: iOS, Swift
> Пример ответа
Минимум нужно два потока. Дедлок (взаимная блокировка) возникает, когда каждый поток удерживает ресурс, необходимый другому потоку, и оба ожидают освобождения ресурса, не отпуская свой. В iOS/Swift это часто встречается при работе с блокировками (NSLock, os_unfair_lock) или очередями (DispatchQueue) при синхронных вызовах. Например, если поток A захватил lock1 и ждет lock2, а поток B захватил lock2 и ждет lock1 - возникает дедлок. Технически возможен дедлок и с одним потоком (например, рекурсивный вызов с тем же lock без рекурсивной блокировки), но классический сценарий требует как минимум двух потоков.
> Похожие задачи по mobile
Что делает механизм ARC на этапе компиляции
Является ли порядок вывода гарантированным или вероятным
От какого класса наследуется UIButton?
Как исключить объект из responder chain?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью