jc_并发工具类
LockSupport
java.util.concurrent.locks.LockSupport
底层使用的 Posix 协议的 mutex,condition 来实现的
1 | //阻塞当前线程,直至调用unpark() |
CountDownLatch
java.util.concurrent.CountDownLatch
用于多个子线程执行完成后主线程才开始继续执行,代替join的工具类
底层使用的是AQS实现的,利用state字段值来计数
1 | CountDownLatch countDownLatch = new CountDownLatch(threadCount); |
CyclicBarrier
java.util.concurrent.CyclicBarrier
同步屏障,用于多个子线程内部到达一定点时再继续各自执行
1 |
|
Semaphore
java.util.concurrent.Semaphore
信号量,控制并发线程数
1 | Semaphore s = new Semaphore(10); |
Exchanger
java.util.concurrent.Exchanger
交换两个线程的数据,相当于两个格子,当两个格子都被填满时交换
1 | Exchanger<String> exchanger = new Exchanger<>(); |
Fork/Join框架
大计算量并发执行框架
CompletableFuture框架
使用 CompletableFuture + 线程池 并发执行任务
使用示例
赏
微信打赏

赞赏是不耍流氓的鼓励