马士兵说:没错,我就是厕所所长!(二)


(接上节)

"你们几个都过来,1314这小子提的建议不错,锁升级的机制可以搞一搞,都提点儿建议!"

1314,9527,1573都凑了过来。

"每次都去OS老大那里申请锁确实太费时间,OS住在内核大院,不让外人进,要想进去要个东西,得经过层层审批,你们几个都说说,有没有什么好的办法提高效率的。1314,鬼主意是你提的,你先说!"

1314笑嘻嘻,一副胸有成竹的样子。

"所长,其实我早就想好了!这第一步嘛,就是不加锁,不加锁,效率保证高,嘿嘿!"

没等我说话,9527抢着说:"不加锁?你忘了上次金毛一头翔了?你能保证没有人冲进来?"

1314慢吞吞的说:"我说的就是如果确定只有一个客户的话,就不加锁!"

我一巴掌扇在1314的脑壳上,"废话!你见过厕所一个坑就服务一个客户的吗?当是你自己家啊!"

"所长大人,你别急啊,我还没说完呢。",1314一边躲,一边继续说道:"每天,咱们所总会迎来第一个入坑的客人,这个客人很尊贵,值得特殊照顾,因为,万一今天生意不好,就这么一个客人呢?所以,咱么可以在坑位上写上这个客人的名字,或者...",

1314一边说,一边白了9527一眼:“或者,在坑位上标上9527的编号,这样下次9527再来的时候,发现自己占着坑的话,就不用上锁了,虽然把编号写在坑上花点儿时间,但是CPU那哥们儿速度快,也就几个纳秒而已。”

“哦,有点儿意思,这个有点儿偏向我呢!我喜欢!”9527说道。

“对对,咱们可以给这种方法起个名,就叫偏向锁!不过,可不是偏向你一个人,咱们三个谁是第一个,就偏向谁。”

“那要是来了第二个客人呢?”9527问。

“那当然就是锁升级了!咱们现在开的不就是锁升级大会嘛!”

“你小子有一套,要不然怎么OS老大的马子都被你泡了。”我不由的夸奖道。

“别提了,那姑娘叫Compiler,见谁拍谁的,要不怎么叫可拍乐,我也是不小心被她拍了...”1314一脸的后悔与悲伤。

1573早就不耐烦:“赶紧着,咋升级?”

1314从回忆中回过神来:“第二个第三个第四个人来了,只要人不多,就不能偏向哪一个了,但是这个时候也没必要去找OS老大,咱们可以让新来的人在坑边等着...”

“等着?原来不就是让他们等着嘛,还有一个等待队列呢!”我说

“我说的等着,不是让他们进队列,就在坑边等着,说不定9527的客人拉完了,后面的人就可以马上补上!”

1573把头摇的跟拨浪鼓似的,“不行不行,肯定不行,上次金毛憋得原地打转儿,我才带他进去的,等时间长了真不行的...”

1314眼睛一亮:“原地打转儿?哈哈,正愁没有名字呢,这把锁就叫做原地打转儿锁!”

“原地打转儿锁?这也太粗俗了,文雅一点儿,就叫 自旋锁!”1314鬼点子很多,但就是没什么文化。

“还是所长有文化,这名字一听就多了文艺气息!”1314一脸谄媚

“还不是得原地打转儿,小心拉裤子里...”1573嘟嘟囔囔。

“坑里的人出来的话,打转儿的人谁进去?有没有先来后到?”我问

“这个嘛,就看咱们是公平锁还是非公平锁了,嘿嘿,所长,您决定!咱们要是公平呢,就给他们排个队,不然的话,由着他们自己抢去。”

我沉吟了一下,“好吧,暂时就这么办!那下一步怎么升级?”我问1314

“要是来的人更多,或者,打转儿的次数够多(JDK1.6规定为10次),或者打转儿的人够多(JDK目前规定为自旋线程超过CPU内核数的一半),我们自己就应付不了了,只能去找OS老大,去申请OS老大的那把超级无敌大重锁!”

“好!”我一拍大腿,“就这么办!人少的时候咱们自己应付 ,人多了,再去麻烦老大!我马上写份报告给上级,1314,你马上贴份告示到墙上,告诉客人咱们的新规则!”

“这个规定顺利实行的话,明年咱们所的接待能力会大大提升呢,说不定可以接待毛易代表团了。”我心中窃喜。

“毛易?还是毛不易?”1573一脸的疑惑。

两天后,一份告示贴到了厕所的墙上:

本所关于锁管理的新龟腚

各位便者大家好,为了更好的服务大家的腚,本所将采取锁升级机制

1:坑位偏向锁一把,先到先得,本所小线程负责贴标签

2:人少请自旋

3:人再多的话,我们小线程们负责找重量级老大申请重量级锁

4:不负责擦屁股

钦此!

觉得好看的,请评论、转发、点赞

需要交流,请不吝留言。

往期文章链接:关注看全部!


本文为我原创

本文禁止转载或摘编

-- --
  • 投诉或建议
评论