线程基础(五)CountDownLatch

一 CountDownLatch概念

 线程基础(五)CountDownLatch

示例代码:

1个指令发出者,三个响应者.

线程基础(五)CountDownLatch

线程基础(五)CountDownLatch

执行结果

线程基础(五)CountDownLatch


示例二----------------------------------------------------------------------


线程基础(五)CountDownLatch


线程基础(五)CountDownLatch

当执行t2线程的时候如果集合的大小不等于5,就执行lock.wait(),线程处于阻塞状态,但是会释放锁.t1线程得到这把锁,当集合大小等于5的时候。执行notify(),唤醒另一个线程,但是没有释放锁,直到t1线程执行玩释放锁.通知t2线程执行下面的程序.

 

但是这里有一个弊端就是不能实时的通知t2线程,直到t1线程执行完才行.

解决办法:加上这个类,1表示countDownLatch.countDown()方法执行一次



线程基础(五)CountDownLatch


线程基础(五)CountDownLatch


线程基础(五)CountDownLatch


线程基础(五)CountDownLatch