开发者社区> 问答> 正文

Java偏向锁

Java偏向锁怎么弄?

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客pklijor6gytpx 2019-10-28 15:34:35 414 0
1 条回答
写回答
取消 提交回答
  • 如果在接下来的运行过程中,该锁没有被其他的线程访问,则持有偏向锁的线程将永远不需要触发同步。 如果在运行过程中,遇到了其他线程抢占锁,则持有偏向锁的线程会被挂起,JVM会尝试消除它身上的偏向锁,将锁恢复到标准的轻量级锁。(偏向锁只能在单线程下起作用)。

      当锁对象第一次被线程获取的时候,虚拟机会将该对象头部的mardword中的标志位设置为01,即偏向模式。将该线程的id 存在markword中,成功之后,持有该锁的线程以后就不在进行任何的同步操作。但是,在另外一个线程尝试获取该锁的时候,这种偏向模式宣告结束 。

    2019-10-28 17:55:49
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载