Day289.并发工具类纵览 -Juc
Posted 阿昌喜欢吃黄桃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day289.并发工具类纵览 -Juc相关的知识,希望对你有一定的参考价值。
并发工具类纵览
1、并发安全类
①互斥同步
(1)使用各种互斥同步锁
-
sychronized
-
ReentrantLock
-
ReadWriteLock
-
…
(2)使用同步的工具类
- Collections.sychronizedList(new ArrayList< E >())等
- Vector等…
②非互斥同步
(1)Atomic基本类型原子类
- AtomicInteger: 整型原子类
- AtomicLong: 长整型原子类
- AtomicBoolean: 布尔型原子类
(2)AtomicArray数组类型原子类(数组里的元素,都可以保证原子性)
- AtomicIntegerArray:整型数组原子类
- AtomicLongArray: 长整型数组原子类
- AtomReferenceArray:引用类型数组原子类
(3)AtomicReference引用类型原子类
- AtomicReference: 引用类型原子类
- AtomicStampedReference: 引用类型原子类的升级,带时间戳,可以解决ABA问题
- AtomicMarkableReference
(4)AtomicFieldUpdater升级原子类
- 用AtomicFeildUupdater等升级自己的变量
- AomicIntegerFeildUpdater: 原子更新整型字段的更新器
- AtomicLongFeildUpdater: 原子更新长整型字段的更新器
(5)Adder加法器
- LongAdder
- DoubleAdder
(5)Accumulator累加器
- LongAccumulator
- DoubleAccumulator
③结合互斥&非互斥同步【线程安全并发容器】
(1)ConcurrentHashMap
(2)CopyOnWriteArrayList
(3)并发队列
【1】阻塞队列
- ArrayBlockingQueue
- LinkedBlockingQueue
- PriorityBlockingQueue
- SynchronousQueue
- DelayedQueue
- TransferQueue
- …
【2】非阻塞队列
- ConcurrentLinkedQueue
(4)ConcurrentSkipListMap 和 ConcurrentSkipListSet
④无同步方案、不可变
(1)final关键字
(2)线程封闭
-
ThreadLocal
-
栈封闭
2、线程管理&提高效率类
①线程池相关
- Executor
- Executors
- ExecutorService
- 常见线程池
②能获取子线程的运行结果
- Callable
- Future
- FutureTask
- …
3、线程协作类
- CountDownLatch
- CyclicBarrier
- Semaphore
- Condition
- Exchanger
- Phaser
- …
以上是关于Day289.并发工具类纵览 -Juc的主要内容,如果未能解决你的问题,请参考以下文章