java 多线程系列文章列表, 请查看目录: 《java 多线程学习笔记》
在企业开发中, 采用异步线程可以提升系统性能. 但是在异步线程开发中, 有时主线程需要监听异步线程何时执行结束, 然后再做一些其它操作. java 中有两种方式监听异步线程的结束: CountDownLatch 和 join.
1. CountDownLatch 方式
1.1 自定义线程类
- 自定义线程类需要添加一个CountDownLatch 计数器, 建议在构造方法赋值
- 务必保证CountDownLatch 自减操作在finally 代码快中
class MyThread extends Thread{
// 计数器
private CountDownLatch countDownLatch;
// 创建线程实例时, 初始化计数器
public MyThread(CountDownLatch countDownLatch) {
this.countDownLatch = countDownLatch;
}
// 计数器自减操作必须放在finally中, 保证一定会执行
@Override
public void run() {
try {
Thread.sleep(2000l);
System.out.println(Thread.currentThread().getName