Я не думаю, что есть хороший способ.
Если вы создали подкласс ReentrantLock
, этот класс мог бы вызвать getQueuedThreads()
, повторить полученную коллекцию и вызвать interrupt()
для каждого из них. , Однако это может быть чревато гоночными условиями. Например, если другой поток пытается получить блокировку во время выполнения этой операции, нет гарантии, что вы увидите этот поток.
Вторая проблема заключается в определении того, где и по какому поводу будет обнаружено исключение.