前言
每天积累一点点,积跬步至千里。今天学习
JUC
包中的Condition、Callable&Future。
Condition等待与唤醒
JUC
提供了这么多的工具类,目的是让我们对于程序中多线程环境下,对线程的控制,Conditon
对象,用来让指定的线程等待与唤醒,按照我们预期的顺序执行,大白话就是,我们完全掌控线程的执行顺序。注意: 它必须和ReentrantLock
重入锁配合使用。Condition
用于替代wait()/notify()
方法
notify
只能随机唤醒等待的线程,而Condition
可以唤醒指定线程,这有利于更好的控制并发程序。
Condition核心方法
await()
阻塞当前线程,直到signal()唤醒signal()
唤醒被await()
的线程,从中断处继续执行signalAll()
唤醒所有被await()
阻塞的线程
代码示例
- 创建三个线程,分别打印
1
、