首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

多线程编程的面试题解决方案

2013-12-10 
多线程编程的面试题记得一道公司面试题,感觉自己回答的不好,拿来问问高手。实现下面这个场景:小明的妈妈要

多线程编程的面试题
记得一道公司面试题,感觉自己回答的不好,拿来问问高手。

实现下面这个场景:
小明的妈妈要做饭,小明想出去玩,妈妈说:你先去玩吧,做好饭后叫你回来吃。
小明如果先结束游戏,则等待开饭,吃完后一起结束。
妈妈如果先做好饭,则暂停叫小明来吃饭,吃完后小明继续玩。
linux 多线程实现
输出:
妈妈:开始准备
妈妈:让小明出去玩
妈妈:做饭
小明:玩
。。。(两线程分别输出)
妈妈:叫小明吃饭
妈妈和小明:吃饭
小明:玩
小明:玩

我实现的方法是:
小明如果先玩完比较好办,thread condition wait就行了,妈妈发signal
但是妈妈先做好饭就比较麻烦了,小明要不断的检查一个标志位,看妈妈是否叫了他。感觉很浪费资源。有没有好办法?

热点排行