Очень простой способ избежать тупиковой ситуации при использовании N потоков — это наложить порядок на блокировки и заставить каждый поток следовать этому порядку. Таким образом, если все потоки блокируют и разблокируют мьютексы в одном и том же порядке, взаимоблокировок возникнуть не может.
Итог
Ключевой вывод для интервью: как гарантировать, что N потоков смогут получить доступ к N ресурсам без взаимоблокировок?