我有一個LockManager管理多個線程的鎖。有時線程是壞男孩,我必須殺死它們並要求LockManager釋放所有的鎖。然而,因爲我在java中使用ReentrantLock這是不可能的,我不能解鎖另一個線程擁有的鎖。解鎖其他線程擁有的鎖java
我被迫使用鎖(不能使用信號燈,它是作業的一部分)。有沒有任何Java Lock實現允許我解鎖其他線程擁有的鎖?
到目前爲止,我認爲有三種選擇:
- 重新實施的方式,讓我做這件事
- 使信號燈和ReentrantLocks
額外之間某種映射的ReentrantLock您可能會覺得有用的來源:
- Reentrant locks - Unlocking from another thread
- Unlocking a lock from a thread which doesn't own it, or redesigning to avoid this?
是的,我被允許使用我自己的鎖。謝謝! 我的夥伴和我實際上實現了我們自己的版本,它使用Semaphores來模擬LOCK接口 – 2013-05-15 16:34:18
我看不到這個實現如何kes線正在等待上一個鎖... – 2015-12-04 09:43:56
@GerardoLastra - *可悲的是它仍然不處理留下的懸掛鎖,但現在成爲別人的問題。* – OldCurmudgeon 2015-12-04 10:02:30