import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; class Bank { int pengebelop = 100; Lock laas = new ReentrantLock(); Condition pengerIBanken = laas.newCondition(); public void ta(int b) throws InterruptedException { laas.lock(); try { while (pengebelop < b) { pengerIBanken.await(); } pengebelop -= b; } finally { laas.unlock(); } } public void gi(int b) { laas.lock(); try { pengebelop += b; pengerIBanken.signalAll(); } finally { laas.unlock(); } } public int saldo() { laas.lock(); try { return pengebelop; } finally { laas.unlock(); } } }