场景:老板招了三个工人给他干活,当三个工人的活全部干完的时候,老板会过来检查。如果没有干完,老板处在等待状态。
什么是CountDownLatch?
CountDownLatch 是Java的concurrent包里面的一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,
也就是同时只能有一个线程去减这个计数器里面的值。
关键词:计数器原子操作 一个
主要看他的构造器参数和await()方法和countdown() 方法和count()方法。
await():如果调用当前方法,当前的线程处于阻塞状态,其他线程执行完任务后调用countdown() 直到count()数减少到0 的时候,才会执行await() 以后的代码。
1.定义一个老板类Boss
2.定义一个工人类 Worker
3.定义一个测试类:
测试结果:
另外两个并发编程的辅助类是CyclicBarrier 和Semaphore