Semaphore到底该如何使用
事情的起因是最近在看redisson的源码,刚好看到了RedissonSemaphore的acquire/release实现。
public RFuture<Void> releaseAsync(int permits) {
if (permits < 0) {
throw new IllegalArgumentException("Permits amount can't be negative");
}
if (permits == 0) {
return new CompletableFutureWrapper<>((Void) null);
}
RFuture<Void>