У меня есть LockManager, который управляет блокировками нескольких потоков. Иногда потоки - плохие парни, и я должен их убить и попросить LockManager выпустить все свои блокировки. Однако, поскольку я использую ReentrantLock в java, это невозможно, я не могу разблокировать блокировку, принадлежащую другому потоку.
Я вынужден использовать Locks (не могу использовать семафоры, это точка домашней работы). Есть ли какая-либо реализация Java Lock, которая позволяет мне разблокировать блокировки, принадлежащие другим потокам?
До сих пор варианты, которые я рассматривал, следующие:
- повторное внедрение ReentrantLock таким образом, чтобы это можно было сделать
- Сделать какое-то сопоставление между Семафорами и ReentrantLocks
Дополнительные источники, которые могут оказаться полезными: