丧心病狂的洗澡方式

少一点功利主义的追求,多一点不为什么的坚持。


引子

我感觉我快疯了。去洗澡的时候都会想问题想的出神。

事情是这样的。某日,我去洗澡,因为正直小学期,正是炎热的时候,晚上洗澡的人特别多,于是排起了长长的队伍。然后我就想到了高并发问题,于是就刹不住车了,引起对计算机的一片思考,下文的思考是经过大学这几年沉淀下来的东西加上自己读的一些课外计算机读物所得的。

干货

澡堂外排起了长长的队伍,这让我首先想到的是高并发,这就像是双十一和六一八一样,澡堂就好比淘宝和京东的服务器,洗澡的人就是买家用户。

因为我们知道可以排队可以按照顺序来使自己洗澡,如果中途走了就得重新排队。这就像那些有高并发问题的消息中间件,消息都需要排队,如果消息队列满了那剩下的就丢了。

为什么会引起排队呢?有两点:一是澡堂可用的淋浴喷头太少,二是人们洗澡的时间太长。

那么解决办法就从这两点出发,即增加淋浴喷头或者提高人们洗澡的效率。

增加淋浴喷头很简单了,没有下文了,只能多修几个淋浴喷头来增加澡堂内同时洗澡的人数。这就像服务器的横向扩展,增加服务器的数量。

提高人们洗澡的效率就值得深究了,嘿嘿嘿。这也就是服务器的纵向扩展,提高服务器的性能。

那么怎么提高人们洗澡的效率,提高服务器的性能呢?

想象一下,怎么让人洗澡洗的快呢?

其一,使用先进的淋浴喷头,水大、温度调节能力好;人们使用方便的沐浴露、浴巾。这就像制造集成电路需要好的材料一般。

其二,分阶段加流水线操作。一个人正在涂抹洗发水或沐浴露的时候,淋浴喷头闲置,这是一用浪费,这时候应该让另一个人来冲洗。这就像CPU的分阶段流水线的指令处理

其三,一个淋浴喷头上产生一个分叉,分出两个喷头来,一个水温适中偏凉适合洗头,一个水温适中偏热适合洗身体,可以减少调节水温的时间。这有点像服务器的横向扩展,不过不是,这是服务器内部性能的提高。

其四,排队队头处于澡堂内部。这样排队的队头的人可以看到澡堂内有人洗完了,可以快速加入洗澡人员的行列。这就像高速缓存,总比访问内存快一点。

其五,洗澡洗累了不能占用淋浴喷头,搓背搓得手酸了,这时候自己需要待在一旁休息,需要将淋浴喷头让与他人使用。这就像进程被异常中断挂起后保存自己的进程信息转而执行其他进程。

总结

当然这种洗澡方式有点不人性了,甚至有点丧心病狂。不过就这样吧,将就着用吧,关于衣柜的加锁解锁问题还没有涉及,以后有空再写。