juc包下四大并发工具
作者:互联网
juc.CountDownLatch 闭锁
一个线程在等待一组线程后再恢复执行
await()等待其他线程执行完毕
被等待线程执行完毕后计数器-1
如何知道其他线程执行完了?
计数器,若一组线程为,CountDown为5,减到0代表等待线程被全部执行完毕
一次性工具:当Countdown的值减到0的时候再也无法恢复
juc内部的代码都是lock体系来实现的
juc.CyclicBarrier 循环栅栏
一组线程同时到达临界点后再恢复执行(先到达临界点的线程会阻塞,直到所有线程都到达临界点)
public CyclicBarrier(int parties, Runnable barrierAction)
当多个线程同时到达临界点时,
随机挑选一个线程执行barrierAction后再同时恢复执行
计数器的值可以恢复
await
juc.Exchanger 线程交换器
用于两个线程直线的数据交换,当Exchanger只有一个线程时,该线程会阻塞直到有别的线程
调用exchange进入缓冲区,当前线程与新线程交换数据后同时恢复执行。
juc.Semaphore 信号量
acquire() : 尝试占用一个信号量,失败的线程会阻塞直到有新的信号量
release() : 释放一个信号量
acquire(int n) : 尝试占用n个信号量,失败的线程会阻塞直到有新的信号量
release(int n) : 释放n个信号量
标签:juc,包下,int,临界点,信号量,并发,线程,执行 来源: https://www.cnblogs.com/hetaoyuan/p/11317029.html