EA&UML日拱一卒-多任务编程超入门-(6)小人国里的积木山

从故事到代码


小人国里有一个积木山,这个积木山很大很脆弱。很大的意思是即使是有人进山了,别人也不知道;很脆弱的意思是一次只能有一个人进山施工,否则搭好的积木就有可能坍塌。


那么问题来了,怎么做才能保证不出问题呢?


一种方法是,在积木山周围设置围墙,就像特朗普一样。但是这个开销太大了,小人国承担不了。于是大家两个想了个办法:


  1. 在某一个进山路口设置一个工牌。

  2. 进山搭积木必须先到这个路口取得这个工牌

  3. 工作完成之后在把工牌交回


小人国是一个讲诚信的国家,大家都遵守这个规则,所以搭建积木山的工作得以顺利进行。本来要设置围墙那么大的工程,一个工牌就解决了,多么巧妙的方法!


但是天长日久还是会发生一些事情,导致搭积木工程出问题:


有人忘了取工牌就进山搭积木去了,这样后来的人就依旧可以取得工牌进山搭积木,结果可以想像:很有可能导致积木山倒塌。


或者有人进山时正常取得了工牌,但出山时忘了归还。结果是明明山里没有人,但是谁也没有办法进山。虽然山不会塌,但工程却是没有办法继续。


还有一种情况上帝(更有可能是程序员)创建小人国的时候弄了两个工牌。小人们虽然严格遵守规则,进山搭积木的人还是会超过一个人,照样可能导致积木山倒塌。


看了这个故事,再看下面的代码,你想到什么了?


EA&UML日拱一卒-多任务编程超入门-(6)小人国里的积木山


写在文章的最后


既然已经读到这里了,拜托大家再用一分钟时间,将文章转发到各位的朋友圈,微信群中。


本公共号的成长需要您的支持!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】
EA&UML日拱一卒-多任务编程超入门-(6)小人国里的积木山