#30天专注成长计划#java CountDownLatch 用法

场景:老板招了三个工人给他干活,当三个工人的活全部干完的时候,老板会过来检查。如果没有干完,老板处在等待状态。

什么是CountDownLatch?

CountDownLatch 是Java的concurrent包里面的一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,

也就是同时只能有一个线程去减这个计数器里面的值。

关键词计数器原子操作 一个

主要看他的构造器参数和await()方法和countdown() 方法和count()方法。

await():如果调用当前方法,当前的线程处于阻塞状态,其他线程执行完任务后调用countdown() 直到count()数减少到0  的时候,才会执行await() 以后的代码。

1.定义一个老板类Boss


#30天专注成长计划#java CountDownLatch 用法_第1张图片

2.定义一个工人类 Worker


#30天专注成长计划#java CountDownLatch 用法_第2张图片

3.定义一个测试类:


#30天专注成长计划#java CountDownLatch 用法_第3张图片

测试结果:


#30天专注成长计划#java CountDownLatch 用法_第4张图片


另外两个并发编程的辅助类是CyclicBarrier 和Semaphore

你可能感兴趣的:(#30天专注成长计划#java CountDownLatch 用法)