到时技术器,有一个任务他需要等待其他几个任务执行完了才能执行
并发编程四个工具类
CountDownLatch
到时技术器,有一个任务他需要等待其他几个任务执行完了才能执行
Exchanger
两个线程用于数据交换,
应用场景:1、用于2个线程的交换数据
2、较对工作
CyclicBarrier
可循环的屏障物
场景:在多线程计算数据之后,最后需要合并结果
例子:公司组织周末聚餐吃饭,首先员工们(线程)各自从家里到聚餐地点,全部到齐之后,才开始一起吃东西(同步点)。假如人员没有到齐(阻塞),到的人只能够等待,直到所有人都到齐之后才开始吃饭。
Semaphore
信号量(控制并发的线程数)
应用场景:
1、限流
2、资源的访问需要控制(数据库的链接,答应机的接口)
例子:业务需求1:有二十人去火车站买火车票,但只有两个窗口,需要控制,同时买票只能有两个人。当2个人中任意一个买好票离开之后,等待的18个人中又会有一个人可以占用窗口买票。 * 拆解:20个人是不是就是20个线程;2个窗口就是资源。 * 实际含义:怎么控制同一时间的并发数为2。