采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在学到countdownLatch 这一节的时候
老师有讲到 AB两个线程 可以等到都结束后执行
之前做开发有遇到过这个问题
想请教下老师
threadPool.await()
实现callable 的future.get()
以及countdownLatch.await() 貌似效果都是可以阻塞到所有任务结束后再执行
不知有什么区别呢
你好,countdownlatch相当于一个屏障,相当于是主线程等待其他相关线程运行完才能运行之后的代码再继续执行;而future的get只是等待当前线程执行完获得一个结果,同时他还支持取消等高级操作。虽然都涉及到阻塞,但是他们各自能解决的事情是不同的。
future.get() 在等待当前线程结果的过程中 其他线程不会阻塞 等待该线程获取结果后一起执行么?。。
他只会堵塞自己所在的线程,等待拿到结果再继续
那如果主线程中有一个子线程 子线程future.get 这时候主线程不会等待 会执行下面的代码 是吗 老师 如果主线程执行了下面的代码 但是子线程的结果没有拿到 主线程操作这个返回值 是不是会出现问题呢
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.1k 15
3.5k 12
1.2k 12