线程安全


多例模式




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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值