Java并发编程之基础篇(五)——闭锁、栅栏、信号量

Java并发编程之基础篇(五)——闭锁、栅栏、信号量

闭锁——CountDownLatch

闭锁类似于一道大门,所有的线程都在大门外等候,当大门打开时,所有线程一起开工。
CountDownLatch提供了一个构造函数,可以传入一个整数作为参数,表示初始计数器。每调用一次countDown()方法时,计数器减一,当计数器减到0时,表示大门开放。可以把CountDownLatch想象成赛车的倒计时计数器,当计数器为0时,所有赛车加速驶出。
下面我们通过开发一个简单的压力测试小工具来演示CountDownLatch的使用。
压力测试小工具
在测试一个系统的处理能力的时候,往往要求测试工具能够模拟出多个客户端同一时刻对服务端发起请求的情况,以此来判断系统的抗压能力。下面的代码借助CountDownLatch实现了该功能,并统计出最后一条请求的完成时间,以此来判断系统的最大TPS。

public class Task implements Runnable {
    //开始计数器
    private final CountDownLatch startGate;
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章