从品牌网站建设到网络营销策划,从策略到执行的一站式服务
今天就跟大家聊聊有关Java中怎么实现一个偏向锁,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了吉县免费建站欢迎大家使用!
偏向锁和轻量级锁一样也是在JDK 1.6中新增的一种锁,它的目的是为了解决数据在无竞争的时候把同步语句去掉,进一步提高程序的运行性能。在上一篇中使我们知道轻量级锁是在无数据竞争的时,使用CAS操作去去掉同步的。那么在偏向锁中就是在无数据竞争时把整个同步都去掉,连CAS操作都不需要做了。偏向锁实际的本质是就是偏向第一个获得它的线程,当这个线程在执行时,如果该锁没有被其他的线程获取,则持有偏向锁的线程将一直不需要进行同步。下面我们看一下在线程获取偏向锁时,Mark Word都会有哪些变化。
当线程第一次获取锁时,虚拟机会把Mark Word中的标志位修改为01,即偏向模式。同时用CAS操作把获取到这个锁的线程记录在对象的Mark Word之中。如果CAS操作成功,那么持有偏向锁的线程每次在执行同步代码块时,虚拟机都不会进行任何同步操作。也就是不会调用同步相关的字节码指令等。当有其它线程尝试去获取这个锁时,偏向模式也就结束了。下图为偏向锁和轻量级锁转化时对象Mark Word等信息的变化。
看完上述内容,你们对Java中怎么实现一个偏向锁有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图