Когда каждый поток заблокирован, если код потока вообще сложен, простое знание того, что он заблокирован, не будет очень информативным, даже если вы можете сказать, какой другой поток его ожидает. Я хотел бы знать , почему он заблокирован.
Способ сказать , почему заблокирован, - захватить его стек вызовов во время его блокировки. Каждый сайт вызова функции в стеке дает одну ссылку в цепочке рассуждений , почему она там есть.