從故事到代碼
小人國裏有一個積木山,這個積木山很大很脆弱。很大的意思是即使是有人進山了,別人也不知道;很脆弱的意思是一次只能有一個人進山施工,否則搭好的積木就有可能坍塌。
那麼問題來了,怎麼做才能保證不出問題呢?
一種方法是,在積木山周圍設置圍牆,就像特朗普一樣。但是這個開銷太大了,小人國承擔不了。於是大家兩個想了個辦法:
在某一個進山路口設置一個工牌。
進山搭積木必須先到這個路口取得這個工牌
工作完成之後在把工牌交回
小人國是一個講誠信的國家,大家都遵守這個規則,所以搭建積木山的工作得以順利進行。本來要設置圍牆那麼大的工程,一個工牌就解決了,多麼巧妙的方法!
但是天長日久還是會發生一些事情,導致搭積木工程出問題:
有人忘了取工牌就進山搭積木去了,這樣後來的人就依舊可以取得工牌進山搭積木,結果可以想像:很有可能導致積木山倒塌。
或者有人進山時正常取得了工牌,但出山時忘了歸還。結果是明明山裏沒有人,但是誰也沒有辦法進山。雖然山不會塌,但工程卻是沒有辦法繼續。
還有一種情況上帝(更有可能是程序員)創建小人國的時候弄了兩個工牌。小人們雖然嚴格遵守規則,進山搭積木的人還是會超過一個人,照樣可能導致積木山倒塌。
看了這個故事,再看下面的代碼,你想到什麼了?
寫在文章的最後
既然已經讀到這裏了,拜託大家再用一分鐘時間,將文章轉發到各位的朋友圈,微信羣中。