EA&UML日拱一卒-多任務編程超入門-(6)小人國裏的積木山

從故事到代碼


小人國裏有一個積木山,這個積木山很大很脆弱。很大的意思是即使是有人進山了,別人也不知道;很脆弱的意思是一次只能有一個人進山施工,否則搭好的積木就有可能坍塌。


那麼問題來了,怎麼做才能保證不出問題呢?


一種方法是,在積木山周圍設置圍牆,就像特朗普一樣。但是這個開銷太大了,小人國承擔不了。於是大家兩個想了個辦法:


  1. 在某一個進山路口設置一個工牌。

  2. 進山搭積木必須先到這個路口取得這個工牌

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


小人國是一個講誠信的國家,大家都遵守這個規則,所以搭建積木山的工作得以順利進行。本來要設置圍牆那麼大的工程,一個工牌就解決了,多麼巧妙的方法!


但是天長日久還是會發生一些事情,導致搭積木工程出問題:


有人忘了取工牌就進山搭積木去了,這樣後來的人就依舊可以取得工牌進山搭積木,結果可以想像:很有可能導致積木山倒塌。


或者有人進山時正常取得了工牌,但出山時忘了歸還。結果是明明山裏沒有人,但是誰也沒有辦法進山。雖然山不會塌,但工程卻是沒有辦法繼續。


還有一種情況上帝(更有可能是程序員)創建小人國的時候弄了兩個工牌。小人們雖然嚴格遵守規則,進山搭積木的人還是會超過一個人,照樣可能導致積木山倒塌。


看了這個故事,再看下面的代碼,你想到什麼了?



寫在文章的最後


既然已經讀到這裏了,拜託大家再用一分鐘時間,將文章轉發到各位的朋友圈,微信羣中。


本公共號的成長需要您的支持!
閱讀更多更新文章,請掃描下面二維碼,關注微信公衆號【面向對象思考】