资讯专栏INFORMATION COLUMN

关于降低锁的竞争程度------从奶爸的角度思考

YacaToy / 2305人阅读

摘要:关于降低锁的竞争程度从奶爸的角度思考题外话这篇文章的灵感来源于近日带娃耍。具体可参考定律,大致可理解为处理器的利用率与处理器数量和串行比例成反比,此外,在锁上发生竞争,导致上下文切换的开销增加,进而降低程序的性能。

关于降低锁的竞争程度------从奶爸的角度思考

题外话:这篇文章的灵感来源于近日带娃耍。

锁竞争带来的问题

在锁上发生竞争,导致串行操作花费的时间比例增加,进而降低程序的可伸缩性。具体可参考Amdahl定律,大致可理解为处理器的利用率p与处理器数量n和串行比例f成反比,p = 1/nf.

此外,在锁上发生竞争,导致上下文切换的开销增加,进而降低程序的性能。基本上每一次上下文切换都涉及到操作系统,JVM,缓存的个方面的开销。

降低锁的竞争程度的好处

基于上面所述,降低锁的竞争程度,是有利于程序的可伸缩性和性能的。

降低锁的竞争程度的方式

一般以下三种方式:

减少锁的持有时间。

降低锁的请求频率。

使用一些协调机制。

这三种方式应该是很容易理解的。

从奶爸的角度思考以下场景

假设以下场景:几个小孩,一个奶爸,一堆玩具,小孩必须通过奶爸才能拿到玩具,而奶爸一次只能被满足一个小孩的要求,并且小孩在玩耍后必须对玩具进行清洁放回原位。

如果每个小孩在拿到玩具后只是玩耍,不需要花时间来给玩具做清洁并放回原位,那么势必增加其他小孩玩耍玩具的机会。此处相当于缩小锁的范围,将一些和锁无关的,长时间的操作移除,把锁用在真正需要的地方。

如果每个小孩不需要通过奶爸才能拿到玩具,而是只要玩具没有其他小孩玩耍,就可以拿来玩。那么势必大大增加了每个小孩玩耍玩具的机会。此处相当于减小锁的粒度,通过锁分解和锁分段,多个相互独立的锁来保护独立的变量,这样就降低了每个锁被请求的频率。

如果奶爸来协调安排各个小孩玩耍玩具,而不是每一次只能满足一个小孩的要求,那么势必玩具的使用度和小孩的体验度也会很好。此处相当于使用一些协调机制来管理共享状态。

备注:小孩相当于线程,玩具相当于资源,奶爸相当于独占锁(1,2)或者某种协调机制(3)。

生活中的事想想也是挺有趣的吧。 :)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68746.html

相关文章

  • 借助云改变商业策略

    摘要:发现云计算领导者的秘密借助云改变商业策略图为大中华区全球信息科技服务部战略及市场总经理石峰同时陶弢也很客观地指出,从整体上来看云计算助力企业业务增长还处于比较早期的阶段。本文原标题发现云计算领导者的秘密借助云改变商业策略本文转载自 目前对云计算的态度和发展上,国家政策是一面地倾斜、IT厂商是全业务渗透,而企业用户呢?在云计算刚起来时,我们就做过畅想,诸如云计算会彻底变 革企业的IT架构、云计...

    wangshijun 评论0 收藏0
  • 技术人攻略访谈三十八|许式伟:十一年逆流顺流,首席架构师到CEO

    摘要:导语本期访谈对象许式伟,七牛云存储,国内语言圈领军人物,社区发起人。许式伟的经历颇有传奇性,大学时就有狂外号的他,凭一份手写简历成功应聘金山,两年后成长为首席架构师,领导长达年的研发。在某技术大会的间隙,我第一次见到许式伟。 showImg(https://segmentfault.com/img/bVjLDc); 文:Gracia (本文为原创内容,部分或全文转载均需经过作者授权,...

    Kosmos 评论0 收藏0
  • Java中的锁以及sychronized实现机制

    摘要:有可能,会造成优先级反转或者饥饿现象。悲观锁在中的使用,就是利用各种锁。对于而言,其是独享锁。偏向锁,顾名思义,它会偏向于第一个访问锁的线程,大多数情况下锁不仅不存在多线程竞争,而且总是由同一线程多次获得。 理解锁的基础知识 如果想要透彻的理解java锁的来龙去脉,需要先了解以下基础知识。 基础知识之一:锁的类型 按照其性质分类 公平锁/非公平锁 公平锁是指多个线程按照申请锁的顺序来获...

    linkin 评论0 收藏0
  • C++重温笔记(四): 继承和派生

    摘要:继承继承,就是子类继承父亲的特征和行为,使得子类具有父类的成员变量和方法。此时,被继承的类称为父类或基类,而继承的类称为子类或派生类。,如果存在继承关系的时候,和就不一样了基类中的成员可以在派生类中使用,但是基类中的成员不能再派生类中使用。 ...

    DevWiki 评论0 收藏0
  • 【张其中】拥有21个超级节点的EOS,背叛了区块链的去中心化理想?

    摘要:就算以上的分析逻辑自洽,有很多人依然认为背离了区块链去中心化的初衷和精髓。基于算法的比特币,看似践行了去中心化的终极理想,实质上却被比特大陆这样的矿霸所垄断。比特币的这种去中心化,基本可以等同于一党独大下的政治协商。 作者介绍:张其中,中科院硕士,连续创业者,乐家app创始人,花猫快问联合创始人,链宝科技联合创始人,关注EOS公链生态发展,致力于基于EOS的DAPP应用实践与产品研究。...

    李世赞 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<