Как работает замок зажигания - PullRequest
0 голосов
/ 06 мая 2020

У меня два потока: один снимает блокировку, а другой снимает блокировку с того же ключа. Но он не работает и выкидывает IllegalStateException.

Как исправить проблему в Ignite?

Спасибо

1 Ответ

2 голосов
/ 06 мая 2020

Такое поведение кажется правильным. Так работает сама семантика Lock. Вы должны следовать шаблону:

    Lock l = ...;
    l.lock();
    try {
        // access the resource protected by this lock
    } finally {
        l.unlock();
    }

Я полагаю, вы ищете способ сделать какое-то уведомление между потоками. Держу пари, что вы можете попробовать IgniteCountDownLatch . Работает в основном как обычный CountDownLatch .

...