线程间通信和等待的区别

来源:6-2 J.U.C之AQS-CountDownLatch

about_blank

2018-05-03

在学到countdownLatch 这一节的时候

老师有讲到 AB两个线程 可以等到都结束后执行

之前做开发有遇到过这个问题

想请教下老师

threadPool.await()  

实现callable 的future.get() 

以及countdownLatch.await() 貌似效果都是可以阻塞到所有任务结束后再执行

不知有什么区别呢

写回答

1回答

Jimin

2018-05-04

你好,countdownlatch相当于一个屏障,相当于是主线程等待其他相关线程运行完才能运行之后的代码再继续执行;而future的get只是等待当前线程执行完获得一个结果,同时他还支持取消等高级操作。
虽然都涉及到阻塞,但是他们各自能解决的事情是不同的。

0
7
about_blank
回复
Jimin
好的 谢谢老师
2018-05-04
共7条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程