多线程高并发底层锁机制与优化实战

锁:互斥锁 悲观锁 同步锁 重量级锁(线程阻塞,上下文切换,操作系统线程调度用户态内核态)

一、AtomicInteger 性能高于二

AtomicInteger atomicInteger= new AtomicInteger();

atomicInteger.incrementAndGet();

二、synchronized

public void increase(){

   synchronized(this){

       num++;

}

}

三、CAS(无锁,自旋锁,乐观锁,自旋锁、轻量级锁、 compareAndSet /compareAndSwap)

while(true){

int oldValue = atomic.get();

int newValue = oldValue+1;

if(atomic.compareAndSet(oldValue.newVlaue){

        break;

}

}

重量级:占用资源多 性能低 

轻量级:占用资源少 性能高

1、原子性问题:底层:lock compxchgq 缓存行锁/总线锁

2、ABA问题:volatile  version     1-2-1

3、轻量级锁不一定比重量级锁性能高吗?

4、偏向锁不会主动释放。

5、LongAdder 分段CAS优化 性能高于AtomnicInteger 防止空转自旋

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA终结者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值