> Сколько минимум потоков нужно для дедлока? (iOS, Swift)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Сбер

Стек: iOS, Swift

> Пример ответа

Минимум нужно два потока. Дедлок (взаимная блокировка) возникает, когда каждый поток удерживает ресурс, необходимый другому потоку, и оба ожидают освобождения ресурса, не отпуская свой. В iOS/Swift это часто встречается при работе с блокировками (NSLock, os_unfair_lock) или очередями (DispatchQueue) при синхронных вызовах. Например, если поток A захватил lock1 и ждет lock2, а поток B захватил lock2 и ждет lock1 - возникает дедлок. Технически возможен дедлок и с одним потоком (например, рекурсивный вызов с тем же lock без рекурсивной блокировки), но классический сценарий требует как минимум двух потоков.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью