Что такое deadlock (взаимная блокировка) в многопоточности?
Уровень: Senior
Ответ
Deadlock – это ситуация, когда несколько потоков навсегда заблокированы, ожидая друг друга. Часто происходит из-за неправильного порядка захвата нескольких ресурсов: например, поток A захватил Lock1 и ждёт Lock2, а поток B захватил Lock2 и ждёт Lock1 – оба будут ждать бесконечно. Deadlock можно предотвратить, соблюдая согласованный порядок захвата ресурсов, используя timeouts при ожидании блокировок или более высокоуровневые примитивы (например, условные переменные) для координации, либо системой обнаружения deadlock (но в Python обычно просто избегают ситуаций, ведущих к взаимной блокировке).