头疼程序员 2022-04-24 21:03 采纳率: 90%
浏览 199
已结题

偏向锁是锁重入吗,不太懂

偏向锁和锁重入性有什么区别吗??感觉一样啊,凑字数了我丢哈哈健康瘦身

  • 写回答

1条回答 默认 最新

  • 会飞的咕咕鱼 2022-04-24 22:15
    关注

    1.偏向锁的字面意思是“偏向于第一个获得它的线程”的锁。执行完同步代码块后,线程并不会主动释放偏向锁。当第二次到达同步代码块时,线程会判断此时持有锁的线程是否就是自己(持有锁的线程ID也在对象头里),如果是则正常往下执行。由于之前没有释放锁,这里也就不需要重新加锁。如果自始至终使用锁的线程只有一个,很明显偏向锁几乎没有额外开销,性能极高。
    2.可重入锁的字面意思是“可以重新进入的锁”,即允许同一个线程多次获取同一把锁。比如一个递归函数里有加锁操作,递归过程中这个锁会阻塞自己吗?如果不会,那么这个锁就是可重入锁(因为这个原因可重入锁也叫做递归锁)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月4日
  • 已采纳回答 4月26日
  • 创建了问题 4月24日