偏向锁,轻量锁,重量锁的适用场景,优缺点是什么?

1 个回答

  • 宁大
    快乐出现的时候,就好好享受快乐。
    偏向锁:加锁解锁不需要进行CAS操作,适合一个线程多次访问同步块的场景。 轻量级锁:加锁和解锁使用CAS操作,没有像重量级锁那样底层操作系统的互斥量来加锁解锁,不涉及到用户态和内核态的切换和线程阻塞唤醒造成的线程上下文切换。没有获得锁的线程会自旋空耗CPU,造成一些开销。适合多线程竞争比较少,但是会有多线程交替执行的场景。 重量级锁:使用到了底层操作系统的互斥量来加锁解锁,但是会涉及到用户态和内核态的切换和线程阻塞和唤醒造成的线程上下文切换,但是不会自旋空耗CPU。 ![image.png](https://images.codewd.com/f97832b9018c2eae852f27b63851c9a5.png)
    发布于 2022-02-07 07:00 •IP属地 天津
    举报
    评论
    收藏