1,CountDownLatch源码分析
1)内部类Sync实现了AQS。
image.png使用AQS的volatile state属性,代表count计数值。
2)构造CountDownLatch
image.png
3)共享释放锁。countDown()方法,计数器-1
image.png
image.png
image.png
4)CountDownLatch实现tryReleaseShared
image.png
5)共享获取锁await() 和 await(timeout, timeunit)
image.png
image.png
image.png
image.png
2,CountDownLatch使用
image.png
倾向于一个线程等待多个线程操作完毕
1)子线程等待main准备资源
->主线程等待子线程并发执行完毕
->发送client响应。
2)任务划分子线程并发执行
->主线程await等待,发送res到client。
image.png
网友评论