CycliBarriar和CountdownLatch之间有什么区别呢?

乔欣 Java面经 发布时间:2022-11-13 23:25:47 阅读数:5432 1 并发编程面试题(2023最新版)
下文笔者讲述CycliBarriar和CountdownLatch的区别,如下所示

CountDownLatch(倒计时器)简介

CountDownLatch:
   常用于某个线程A等待若干个其他线程执行完任务之后
     它才执行
   强调一个线程等多个线程完成某件事情
   CountDownLatch方法比较少,操作比较简单,CountDownLatch是不能复用的。

CountDownLatch方法原理:
    任务分为N个子线程去执行,state也初始化为N(注意N要与线程个数一致)
    这N个子线程是并行执行的,每个子线程执行完后countDown()一次
	state会CAS(Compare and Swap)减1
	等到所有子线程都执行完后(即state=0),会unpark()主调用线程,然后主调用线程就会从await()函数返回,继续后余动作

CycliBarriar和CountdownLatch区别

区别1:复用性上不同
     CountDownLatch是不能够重用
     CyclicBarrier是可以重用

区别2:侧重点不同
     CountDownLatch:一般用于某个线程A等待若干个其他线程执行完任务之后,它才执行
     CyclicBarrier:一般用于一组线程互相等待至某个状态,然后这一组线程再同时执行
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202211/16683550624906.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者