void waitSync(List<Object> result) { if (result.size() < 2) { return; } Long syncs = (Long) result.get(result.size() - 2); Double syncId = (Double) result.get(result.size() - 1); if (syncs != null && syncs > 0) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(syncId)); try { semaphore.acquire(syncs.intValue()); semaphore.delete(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }
void waitSync(List<Object> result) { if (result.size() < 2) { return; } Long syncs = (Long) result.get(result.size() - 2); Double syncId = (Double) result.get(result.size() - 1); if (syncs != null && syncs > 0) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(syncId)); try { semaphore.acquire(syncs.intValue()); semaphore.delete(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }
void waitSync(List<Object> result) { if (result.size() < 2) { return; } Long syncs = (Long) result.get(result.size() - 2); Double syncId = (Double) result.get(result.size() - 1); if (syncs != null && syncs > 0) { RSemaphore semaphore = redisson.getSemaphore(getSyncName(syncId)); try { semaphore.acquire(syncs.intValue()); semaphore.delete(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }
public static void main(String[] args) throws InterruptedException { // connects to 127.0.0.1:6379 by default RedissonClient redisson = Redisson.create(); RSemaphore s = redisson.getSemaphore("test"); s.trySetPermits(5); s.acquire(3); Thread t = new Thread() { @Override public void run() { RSemaphore s = redisson.getSemaphore("test"); s.release(); s.release(); } }; t.start(); s.acquire(4); redisson.shutdown(); }