线程的并发工具类

一、countDownLatch

1、计数器,调用await的线程等待计数器的扣除点都扣完了为0时候会继续往下执行;

1.2专门的初始化线程类:

 

 1.2业务线程类:

1.3主线程最大最用是初始化了几个线程:

一个线程可以扣除多个扣除点;

二、CyclicBarrier

1、两个概念区别,CyclicBarrier自己带钥匙,人齐了屏障解除;

countDownLatch是等其他人用累计扣除所有扣除点,await的线程都继续执行;

 2、代码实现

工作线程,sleep导致不同的线程不同时间到达barrier屏障,人齐了就放行:

 

 3、

 三、semaphore

1、

 2、代码实现,获取和释放许可:

 

 数据库连接也是资源,拿连接时,在用的连接acquire加1 , 闲着的连接则release减1;

释放连接相反:

 连接池中,空位也是资源,useless的作用,没有空位无法添加连接资源进来:

 结果:

 四、exchange

1、阻塞方法,只能两个线程交换,先到等另外一个执行到exchange方法,到了两人呼唤exchange定义的泛型的变量;

 五、

原文地址:https://www.cnblogs.com/wmqiang/p/11670342.html