public static void main(String[] args) { HazelcastInstance hz = Hazelcast.newHazelcastInstance(); IAtomicLong counter = hz.getAtomicLong("counter"); ILock lock = hz.getLock("lock"); ICondition isOneCondition = lock.newCondition("isOne"); lock.lock(); try { counter.set(1); isOneCondition.signalAll(); } finally { lock.unlock(); } System.out.println("Value changed"); } }
public static void main(String[] args) throws Exception { HazelcastInstance hz = Hazelcast.newHazelcastInstance(); IAtomicLong counter = hz.getAtomicLong("counter"); ILock lock = hz.getLock("lock"); ICondition isOneCondition = lock.newCondition("isOne"); lock.lock(); try { while (counter.get() != 1) { System.out.println("Waiting"); isOneCondition.await(); } } finally { lock.unlock(); } System.out.println("Wait finished, counter: " + counter.get()); } }