我正在使用 RSemaphore 来维护特定的计数。请看下面:-
RSemaphore sem = redisson.getSemaphore("custid=10");
sem.trySetPermits(10);
try {
sem.acquire();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ": Acquired permit");
try {
Thread.sleep(60000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ": Releasing permit");
sem.release();
我在最后发布了信号量,但有时我的代码执行可能会停止、终止或由于特定原因我停止服务器。那么获取的信号量将永远不会被释放。
为了处理这种情况,我想要信号量,它会在特定时间后自动释放。