“养鱼”问题
来源:互联网 发布:js检测类型 编辑:程序博客网 时间:2024/04/28 05:53
首先了解金鱼有一个“特点”:它会一直吃,一直吃,直到撑死为止。
这吃货真的会连命都不要硬是要吃死自己么?这个暂且不论其真实性,这样认为就好了。另外,爱国下,金鱼起源于中国哦。
假设李雷和韩梅梅两个人合住一套公寓,共同养了一条金鱼。金鱼一天喂也只能喂一次,不然鱼就撑死了;当然如果谁也不喂,鱼就饿死了。所以李雷和韩梅梅约定
1. 每天喂鱼一次,且仅一次
2. 如果李雷喂了,韩梅梅就不喂了,反之亦然
3. 如果今天李雷没有喂,韩梅梅今天就必须喂,反之依然
场景1
起初李雷和韩梅梅都还不沟通。每个人觉得需要喂鱼时,查看一下鱼的状态,感觉鱼还没进过食,则喂鱼。就这样,金鱼经常就死了。
症结
感觉常常出现问题。往往鱼还没吃食,他们觉得鱼吃了,然后鱼就饿死了;玩玩鱼吃了,他们觉得鱼没吃,然后鱼就撑死了。
改进
李雷和韩梅梅平常多观察,通过查看鱼的外形就能很准确的判断鱼是否喂过。
场景2
岁月悠悠,鱼儿悠悠。因为他们能很准确的判断鱼是否喂过。直到有一天,他们发现鱼还是撑死了。怎么回事呢?
李雷判断完鱼没喂后,然后去了趟厕所,花了5分钟。此间韩梅梅判断鱼没喂,给喂了鱼。李雷回来后,然后喂鱼,鱼不幸胀死了。
症结
存在代码竞争,两个人不能同时进入临界区
改进
任何时刻只能有一个人在临界区里,即互斥。当李雷判断鱼有没有喂后,去厕所的时候,不允许韩梅梅喂鱼。那韩梅梅怎么知道李雷是不是在厕所里呢?
场景3
韩梅梅和李雷沟通是最直接的方法,另外就是:留纸条
- 养鱼问题
- “养鱼”问题
- 养鱼问题
- 求解逻辑问题:谁养鱼
- “爱因斯坦的超级问题:谁养鱼?”
- 用ECLiPSe解决爱因斯坦养鱼问题
- “爱因斯坦的超级问题:谁养鱼?”
- 一个有趣的逻辑问题:谁养鱼?
- 谁养鱼的问题。据说是爱因斯坦出的题。
- 谁养鱼?
- 谁养鱼?
- 谁养鱼
- 养鱼记
- 谁养鱼?
- 谁养鱼
- 说养鱼
- 是谁养鱼?
- 面试问题:有5栋5种不同颜色的房子,谁养鱼???
- 机器视觉牛人及其相关领域分类科普
- Android HttpGet和HttpPost设置超时
- abstract class和interface有什么区别?
- iOS多线程编程指南(二)线程管理
- java设计模式的应用场景
- “养鱼”问题
- Ubuntu的软件安装
- 2013-7-31计划
- 父类通过反射获得子类的class泛型类型
- iOS多线程编程指南(三)Run Loop发布者
- PHP漏洞全解(一)
- Crystal Reports 报表处理模型
- 内存泄漏以及常见的解决方法
- HTTP和TCP的区别和联系