【发布时间】:2016-09-19 09:11:26
【问题描述】:
我正在尝试创建一个基础架构,让不同的机器通过 Redisson 获取共享锁。一旦获得锁,一些异步任务就会完成,最后,当我完成工作时,我正在通过当前正在运行的线程释放 Redisson 锁 - 但我收到以下错误
java.lang.IllegalMonitorStateException: attempt to unlock lock, not locked by current thread by node id: xxxxx thread-id: 57
所以,我明白其中的意思,但是由于我要执行异步工作,我不能使用获取线程来执行释放。
我不应该使用 Redisson 锁吗?这种异步工作的最佳匹配是什么?
【问题讨论】:
-
Lock#unlock()告诉您锁通常会这样做。因此,无论您使用什么库,都可能需要一个不同的原语,如信号量。编辑:太早按回车。 -
谢谢! Redisson 的信号量不是异步 AFAIK,所以我不能使用它。
标签: java redis locking redisson