锁升级 《我就是厕所所长》

转载
链接:https://www.jianshu.com/p/b43b7bf5e052
作者:马士兵

没错,我就是厕所所长!(一)

“9527!”

“到!”

“1314!”

“到!”

虽然这帮子小线程们都有自己的名字,但我还是喜欢叫他们的代号,每天起床的时候,我都会点一遍名,大多数的小家伙都会及时报道,也有类似520这种一辈子都不来的,不过有OS老大管着呢,我也懒得多管闲事儿。

“9527,1314,1573!你们几个去处理厕所的事情!”

9527倒是勤快,也没什么怨言,天生就是下人命。
1314上次睡了OS老大的马子,还说爱人家一生一世,受OS老大的打压,给发配到厕所这儿,这一辈子就管定厕所了,时间长了也就认命了。
1573是最刺头儿的,每次让它管厕所,必定得整出点儿事情来。

果不其然,不到中午的时候,我就收到报告,9527的客人在蹲坑的时候,1573带着个愣头青就进去了,二话不说就干事儿,结果搞得9527的客人一头的粘翔…

9527的客人本来满头的金发,70多了,听说身份很大,但是现在一坨翔的映衬下,再有没有往日的意气风发。

“我要发200个推特,我要投诉你们”,老头气呼呼的歇斯底里的呐喊!

“怎么回事?”,我问1573。

1573一脸无辜的样子,“我又不知道里面有人…”

是啊,这到是个问题,确实也怨不得1573。

“您好,您去发您的推特吧!”,我打发了怒气未消的金毛。

但是长此以往也不是个事儿啊?怎么解决呢?

1314笑嘻嘻的凑了上来,“所长,咱们可以给每个坑上把锁啊,进去的时候把锁锁上,出来的时候把锁打开,不就结了!”

“好主意啊,没想到你小子还真有一套!”,我拍了拍1314的肩。

虽然锁门这件事情得需要OS老大的同意,效率上稍低一些,不过,至少解决了客人之间的 AEOWS 问题。

"AEOWS?什么鬼?"1573好奇的问。

“笨蛋,就是客人之间的 Attack Each Other With Shit 问题!,不整个专业点儿的名词,怎么让OS老大觉得我是专业的厕所所长?”

“所长高见,既然这样的话,干脆跟OS老大申请个新名词,就叫synchronized,咋样?” 1314鬼主意比较多。

“synchronized?辛苦啦奶子的?你个色鬼,这个时候还想着奶子!”

9527挠了挠头,“但是所长,咱们最近业务繁忙,等的人太多了话,每次上锁解锁都要找OS老大,是不是慢了点儿?遇见点儿急茬,岂不是都得拉裤子里…”

嗯,这倒是个问题,OS老大在内核大院里,机关重重,每次进去都得扒层皮,我得想个办法!

“1314,你说说,看你鬼头鬼脑的,应该已经有主意了吧?”

1314笑嘻嘻的:“有个主意,我去隔壁丽春院的时候,发现他们的姑娘级别越高,要价也越高!要不咱们也整个级别,弄个锁升级机制,您看咋样?”

我一巴掌拍在1314的脑壳上,“奶奶的,你小子还有空去丽春院,不想活了?被OS老大知道,肯定永远让你阻塞!”

不过,这小子说的锁升级机制,倒是可以试试呢…

“你们几个都过来,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:不负责擦屁股

钦此!

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值