有人在群里问JUC的四大并发类该怎么用?记不住怎么办?于是乎本着复习加导学的目的写了简单的用例,在此记录一下
CountDownLatch
CountDownLatch一般用于主线程等待所有子线程执行完毕的场景,比如:老师要等所有的小朋友集合了才带他们回教室。
下面是个例子:
1 |
|
执行结果如下:
1 |
|
CyclicBarrier
CyclicBarrier一般用于子线程间等待,就绪后再同时执行,具体执行顺序由CPU进行调度,比如:老师举行一次吃零食大赛,要等5位选手到齐了才能开始比赛。
1 |
|
执行结果如下:
1 |
|
Future
Future适用于需要即时获取子线程的执行结果的情况,可在获取结果时设置超时时间控制获取结果的时机,以免阻塞。
1 |
|
执行结果下:
1 |
|
Semaphore
Semaphore通常用于子线程间争夺临界资源的场景,所以他们需要申请使用,并在使用完之后释放
1 |
|
执行结果如下:
1 |
|
结语
以上就是JUC四大常用并发类的简单解释于简单用法,如果想要获取和了解更多高级用法,请手动Google和百度哦~