多例模式
| |
|
|
ThreadLocal
|
|
一个
ThreadLocal可以为多个线程提供一个副本;
ThreadLocal有一个静态内部类ThreadLocalMap(键是当前线程、值为当前变量值);
|
|
锁机制 | snchronized | 隐式锁、下面都是显示锁 自动开启、关闭 |
锁对象
用在方法上、或代码块上
适合于少量竞争者
|
|
ReentrantLock
|
手动开启:lock
手动关闭:unlock
|
代码块
高并发,比
snchronized效率高
|
|
ReentrantWriteReadLock
| 读写锁机制(读-读不互斥、其它互斥) 手动开启、关闭 |
ReentrantLock的扩展
|
|
StampedLock
| 乐观锁、悲观锁逻辑 手动开启关闭 |
Lock的扩展、吞吐量大,有应用场景限制
|
co
nCurrent安全类
|
automic
|
基本类
引用类
数组类型
| 利用CPU比较交换并交换 和非阻塞算法 |
| vector | 数组 安全(方法锁snchronized) |
|
|
copyOnWriteArrayList
| set/add/remove加锁(ReentrantLock) read(不加锁) 添加元素时,拷贝副本,对副本进行添加,再将引用指向副本,是为了并发的进行读操作; | 占有内存 数据最终一致性(不能实时一致性) 适合于读多写少 |
|
copyOnWriteArraySet
|
copyOnWriteArrayList基础上实现装饰器模式
|
|
|
conCurrentHashMap
|
实现了map/serializable
hashmap线程安全版
(
代码块锁
ReentrantLock
)
|
多段(Segmemt),每段就是一个hashtable(默认16段)
|
hashtable
|
|
散列表
实现了map/serializable 安全(方法锁snchronized) | 与hashmap区别 与conHahMap区别 |
StringBuffer
|
| 安全(方法锁snchronized) |
|
转载于:https://my.oschina.net/zx133/blog/656421