Вопрос объясняет методы предотвращения взаимных блокировок в многопоточной среде.
Короткий ответ
Избегайте вложенных блокировок.
Используйте таймауты (например, tryLock(timeout)).
Упорядочивайте блокировки (всегда получайте lockA перед lockB).
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.