Java教程:JVM对Java的原生锁做了哪些优化?

 JVM对Java的原生锁(即synchronized关键字)做了许多优化,其中包括:

1.偏向锁(Biased Locking)

  当一个线程获取锁后,JVM会将锁的对象头标记为偏向锁。此时,该线程可以无需竞争地获取该锁。这种情况下,锁的获取和释放不需要额外的开销,因为偏向锁会记录线程ID,使得在该线程持有锁期间,其他线程无法获取该锁。只有在其他线程尝试获取锁时,才会升级为轻量级锁。

2.轻量级锁(Lightweight Locking)

  当多个线程争夺锁时,JVM会将锁标记为轻量级锁。此时,JVM会在锁对象的对象头中记录指向线程栈中锁记录的指针,以及用于保存原始对象的指针。这样,当一个线程尝试获取该锁时,JVM会将该线程的栈帧中的锁记录与锁对象头中的指针进行比较。如果相同,则表示该线程已经获得了该锁;否则,JVM会使用CAS操作尝试将锁对象头中的指针指向当前线程的锁记录。如果CAS操作成功,表示当前线程成功获得了锁。否则,表示有其他线程争夺该锁,此时JVM会将锁升级为重量级锁。

3.重量级锁(Heavyweight Locking)

  当多个线程争夺锁时,如果无法获得锁,则会升级为重量级锁。此时,JVM会使用操作系统的互斥量实现锁。重量级锁的开销非常大,因为需要进行用户态与内核态之间的上下文切换。

  下面是一个简单的代码演示,展示了偏向锁、轻量级锁和重量级锁的使用情况。

public class SynchronizedDemo { private int count = 0; public synchronized void increment() { count++; } public static void main(String[] args) { SynchronizedDemo demo = new SynchronizedDemo(); for (int i = 0; i < 100000; i++) { demo.increment(); } System.out.println(demo.count); } }

  在这个示例中,我们使用synchronized关键字来对increment()方法进行同步。由于该方法是实例方法,因此锁对象是该实例对象。当多个线程同时访问该方法时,JVM会根据锁的状态来选择使用偏向锁、轻量级锁或重量级锁。具体的选择过程是由JVM内部的锁升级算法来决定的,这里不再详细展开。

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:Java教程:JVM对Java的原生锁做了哪些优化? https://www.dachanpin.com/a/cyfx/10625.html

(0)
上一篇 2023-05-12 02:02:21
下一篇 2023-05-12 02:03:24

相关推荐

  • 济南开通首个创新券管理平台助力中小微企业、创业者

      中小微企业和创业者迎来一波福利!6月1日,济南市创业创新活动券管理平台(以下简称管理平台)开通上线,创客们可以申领“活动券”,用于购买孵化器、众创空间和服务平台等服务机构举办的讲座、论坛、沙龙、路演、推介会等各类创新创业活动。   谁能收取“活动券”:百余家服务机构报名,评审后将在科技局网站公示   3月,《中小微企业创新券实施管理办法(试行)》出台,济…

    创业分享 2023-05-23
    63
  • 瑞昌:“数”说2019年就业创业服务“满堂彩” 中国劳动保障新闻

    瑞昌:“数”说2019年就业创业服务“满堂彩” 来源:中国劳动保障新闻网 作者:洪秋荣 日期:2020-01-02   近日,记者从江西省瑞昌市就业局了解到:2019年各项工作全部超额完成目标任务。完成就业培训6969人,完成率290%;发放创业扶持贷款2.8亿,完成率157%;城镇新增就业人数6459人,完成率144%;安置427名贫困人员就业,完成率11…

    创业分享 2023-05-12
    102
  • 吉林省辽源市东北袜业园:小袜子创业路

    吉林省辽源市东北袜业园:小袜子创业路 编辑:刘梦晓    来源:人民网-《人民日报》   2018-05-03   1994年出生的钟文是吉林省辽源市东北袜业园中一名青年创业者。2017年7月,大学毕业的钟文被东北袜业园“一站式+保姆式”的创业服务机制吸引,成立了自己的袜厂。他与厂里老师傅共同设计出一种由透明丝线和亮光…

    2023-05-18
    61
  • 思政教育贯穿创业教育的价值、内涵与路径

      黄播(上海师范大学天华学院思政教学部讲师):KAB创业教育培训创业教育的价值意蕴   如今,“创业教育”已经成为了继学术能力、职业能力后的“第三本教育护照”,创业教育在中国高校的发展也日新月异,受到学生的欢迎。然而,创业教育到底是一种全方位的素质教育,培养学生的创新思维或者说创业精神,还是仅仅作为一门技艺课程教授学生创业技能,热衷于实际操作、拉项目、搞竞…

    创业分享 2023-05-21
    176
  • 通山县政协开展服务鼓励委员创新创业

      咸宁新闻网讯(通讯员 张远杰 谢志明)通山县第十届政协委员王有益,放弃浙江台州开店经商年收入10万元高薪,返乡流转土地1100亩,5年为当地农民增收130余万元,增加粮食收入400余万斤;政协委员、通山县康复医院院长谭从展发明的“治疗颈椎病的中药组合物及其制备方法”获中华人民共和国国家知识产权奖……   为了使委员在岗创业、创新发明,去年以来,县政协领导…

    创业分享 2023-05-17
    58

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信