import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.Condition; public class ThreadCommunicationExample { private Lock lock = new ReentrantLock(); private Condition condition = lock.newCondition(); private int sharedData = 0; public void producer() throws InterruptedException { lock.lock(); try { while (sharedData != 0) { condition.await(); } sharedData = 1; condition.signal(); } finally { lock.unlock(); } } public void consumer() throws InterruptedException { lock.lock(); try { while (sharedData != 1) { condition.await(); } sharedData = 0; condition.signal(); } finally { lock.unlock(); } } }


上一篇:
下一篇:
切换中文