Я пытаюсь создать инфраструктуру, где разные машины приобретают общие блокировки через Redisson. После того, как замок приобретается, некоторые задачи асинхронных будут сделаны, в конце концов, когда я закончу работу, я отпуская замок Redisson через нить в настоящее время работает - но я получаю следующую ошибкуRedisson release блокировки из разных тем
java.lang.IllegalMonitorStateException: attempt to unlock lock, not locked by current thread by node id: xxxxx thread-id: 57
Итак, я понимаю смысл этого, но так как я хочу выполнять асинхронную работу, я не могу использовать поток, чтобы выполнить выпуск.
Должен ли я использовать замки Redisson? Какое наилучшее совпадение для работы async?
['Lock # unlock()'] (https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html#unlock--) сообщает, что обычно это делает блокировка. Так что, вероятно, другой примитив, такой как Семафор, который необходим независимо от того, какую библиотеку вы используете. Изменить: нажмите слишком рано. – zapl
Спасибо! Семафор Редиссона не является асинхронным AFAIK, поэтому я не могу его использовать. – AvivC