Java Docs for Lock содержит следующее заявление в документации по Методам lock
, lockInterruptibly
и tryLock
.Есть ли реализация блокировки, которая выполняет обнаружение блокировки?
Реализация блокировки может обнаруживать ошибочное использование блокировки, такую как вызов, который вызывает тупик, и может вызывать (непроверенное) исключение при таких обстоятельствах. Обстоятельства и тип исключения должны быть документированы реализацией Lock.
Есть ли реализация интерфейса Lock
в API Java 8, который фактически пытается обнаружить такое «ошибочное использование»?
Обратите внимание, что в javadoc говорится, что тупик - это одно из возможных злоупотреблений. Другим возможным злоупотреблением является попытка и разблокировка блокировки, которая уже разблокирована; и все доступные реализации делают это (я считаю, что они бросают «IllegalMonitorStateException» в этом случае, не проверены) – fge
Я специально спрашиваю о блокировке - я не мог найти никакой реализации, говоря о метании чего-либо другого, кроме InterruptedException, на 'tryLock' ... Я знаю, что при разблокировке Lock у вас нет собственной цитаты «может бросить (непроверенное) исключение», но это что-то другое. – Hulk
Если сторонние библиотеки являются честной игрой, Guava ['CycleDetectingLockFactory'] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/util/concurrent/CycleDetectingLockFactory.html) может быть что вы ищете? –