上厕所想到的线程同步

    作为一个程序员,每天都是喝水2小时,搬砖10分钟的,这不,刚喝完水,准备搬点砖了。

    众所周知,人在大量饮水的情况下,是会频繁上卫生间的,无论肾的好与坏。喝点水就想往厕所跑,这是惯出来的。

    公司在去卫生间的路上有一道门,这道门呢,关上了就锁住了,得输入密码才能打开;如果不锁呢,也没关系,上完厕所再关也可以;但是呢,一旦锁上门了,再打开就要输入密码,花费一点时间,而且门呢,这一开一关会产生电磁铁吸住-释放的声音,有点吵。

    平时一个人上厕所,关不关门都无所谓,我尿完了,回来顺手就可以关上;但是其他同事也要上厕所,人上完了,不关门,我待会回去可以关上,但是呢,他要是回去顺手把门一锁,我就得输入密码,“咔咔”的开门-关门,挺安静的一层楼被整得贼吵。

    现将上厕所这一场景抽象出来,小便池属于公共资源上厕所的人为线程门为锁(内核对象的公共资源,每次只有一个线程能拿到,那么公司的这道门自然就不是了,上大号的那道门才是),占用小便池就是业务处理时间,以下梳理整体流程:

    首先,suppose 公司的这道门平时都是打开的,一旦关闭,就无法从外面打开进入,只有小便完的人出来了,才能打开这道门,然后其他人才能进去。

    接着,我准备去卫生间了。这个时候门是开着的,表明没有人在占用小便池。当我进门的时候,我反手关上门了(获得锁了)。从外面看的话,同事看到门被锁上了,知道有人在上厕所,就不会进去了,只能坐在工位上多喝点水了。那么我呢,就可以去厕所撒尿了。对了,先洗手,再撒尿,尿完了,再洗手,就是这么讲究,就是这么prevent from病从口入。那么撒尿要多久呢,要看喝了多少水,咱们公司在29L,厕所这可以看到窗外的一大片马路,一般我会在这看一会来往的车流,美女是没有的,顺便照下镜子,看看今天的发量是否和昨天一样。待确认之后,就出卫生间洗手了,洗完手要甩两下(风干机是没有的)。好了,这下就要从一个短暂的通道回到刚刚关闭的门这了,现在,我要输入密码开门了(打开这个锁)。随着“咔咔”的声音响起,门开了。同事这会已经瞟向我这边了,水喝完了吗?(喝水的时间就是在等待,线程是由操作系统来分配调度的,当下一个时间片分给同事了,他就可以上厕所了)。当我走出来了的时候,他没跟我打招呼的就大踏步的进去了,顺便反手锁了门。此时,我又该喝我的水了,不是,是写我的这个段子了……

    

    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值