CountDownLatch、CyclicBarrier、join、awaitTermination

1、CountDownLatch程序计数器
官方解释:
A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.
允许一个或多个线程等待,直到其他线程的操作完成,再执行。


image.png

2、CyclicBarrier循环屏障
官方解释:
A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point.
一组线程全都等待,直到每个线程都到达一个公共的屏障点,屏障才打开,继续后面的操作。


image.png

3、join
若在A线程执行过程中,执行线程B的join方法,则A线程会等待,直到B线程结束。
image.png

4、awaitTermination
①shutdown() 线程池状态置为shutdown,并不会立即停止:

停止接受外部submit的任务
内部正在执行或者队列中的任务会继续执行,直到结束
②shutdownNow() 线程池状态置为stop,试图立即停止,事实上并不一定
停止接受外部submit的任务
忽略队列中等待的任务
尝试将正在跑的任务interrupt中断
返回未执行的任务列表
③awaitTermination(long timeOut, TimeUnit unit) 阻塞当前线程
等待所有正在执行或队列中的任务执行完
等待时间超时
线程被中断,抛出InterruptedException
shutdown请求后所有任务执行完毕,则返回true,超时,则返回false
通常与shutdown联合使用


image.png

总结:优雅的关闭:shutdown
立即关闭,并返回未执行任务列表:shutdownNow
设置超时时间,检查线程池是否关闭:awaitTermination

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 11,345评论 4 56
  • 在我们的开发中“池”的概念并不罕见,有数据库连接池、线程池、对象池、常量池等等。下面我们主要针对线程池来一步一步揭...
    Alukar阅读 918评论 2 1
  • 作为一个修理技师、最重要的就是把当下的车不急不停的、按标准修好、车主再急我不慌。 体验:修好不只是车,是对客户的安...
    京心达张新波阅读 225评论 0 0
  • 在地铁里听到有人说,什么考试过了四门,看书看到凌晨两点,特别励志,可是,回到住的地方,自己都不想动,别说看书了。每...
    柠檬安然阅读 190评论 0 0
  • 灿烂朝阳阅读 263评论 1 4