Java Concurrent 并发支持

2017-02-03  本文已影响0人  Wavky

atomic包

轻量级无锁原子同步工具包,提供多个原子型基本数据结构封装(AtomicBoolean、AtomicInteger等),用于支持原子级别的线程安全读写,适用于全局状态共享同步。


CountDownLatch

倒计数阻塞器,初始数字倒计到 0 时,被其阻塞的线程将被放行并继续工作,主要用于主线程需要等待多个子线程执行完毕并返回结果的场景。

CountDownLatch 变量通常存在于主线程对象内。
CountDownLatch 只能一次性使用,倒计数到达 0 时,CountDownLatch 对象将永久失去阻塞效果。

主要方法


CyclicBarrier

环形阻拦器,初始数字倒计到 0 时,所有被阻塞的线程将被同时放行并开始工作,主要用于多个线程需要等待同一时刻并发执行的场景。

CyclicBarrier 变量通常被所有阻塞线程共享。
CyclicBarrier 可重复使用,初始数字倒计到 0 时再次调用 await() 方法,初始数字将回归原始状态并进入新一轮阻塞过程。
CyclicBarrier 在功能上可与 CountDownLatch 交换使用。

主要方法


Semaphore

信号量,用于设置定量的许可数量,通过获取、释放许可的方式,控制可同时执行的线程数量(并发数控制)。

主要方法


参考:

Java 并发之 CountDownLatch、CyclicBarrier 和 Semaphore

上一篇 下一篇

猜你喜欢

热点阅读