线程安全与锁优化
回到首页

线程安全与锁优化

/ 软件 / 没有评论 / 50浏览

标签:➲软件 

ThreadLocal:实现本地线程存储;原子类:AtomicInteger等

自旋锁:就是计算机有多于一个处理器的时候,为了避免互斥同步引起的转入内核态的性能损耗问题。新增的一个忙循环,也就是无意思的自循环。两个线程同时进行,自旋等待的时间必须要有一定的限度,如果自旋超过了限定次数第二个线程仍没成功获得锁,就应当使用传统的方式去挂起线程,默认值10次,用户可以使用参数:-XX:PreBlockSpin 更改次数

锁粗化:同步块作用范围限制不一定越小越好,例如代码String A="a"+"b"+"c";如果定在append()这个方法,就会循环了三次加锁同步。直接对A变量加同步锁能优化性能

轻量级锁:在无竞争的情况下使用CAS操作去消除同步使用的互斥量

偏向锁:实在无竞争的情况下把整个同步都消除掉,连CAS操作都不做的