На собеседованиях часто спрашивают что такое deadlock. Затем может следовать вопрос а как его можно устранить, при этом желательно привести несколько примеров устранения различными способами.
На практике это обычно решается изменением архитектуры. Как можно устранить проблему либо при использовании дополнительных алгоритмов, либо особенностей языка, библиотек, операционной системы.