Lock + Condition 的简单使用---实现“等待通知”

tech2026-01-17  3

1、

package multiThread.art; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class ConditionUseCase { Lock lock = new ReentrantLock(); Condition condition = lock.newCondition(); public void conditionWait() throws InterruptedException { lock.lock(); try { /** * 调用 await() 方法后,当前线程会释放锁并在此等待 */ condition.await(); }finally { lock.unlock(); } } public void conditionSignal() throws InterruptedException{ lock.lock(); try { /** * 调用 signal() 方法, 通知当前线程后,当前线程才从 await() 方法返回 * 并在返回前已经获取了锁 */ condition.signal(); }finally { lock.unlock(); } } }

 

最新回复(0)