哲学家进餐问题汇.docVIP

  • 0
  • 0
  • 约8.91千字
  • 约 12页
  • 2018-05-11 发布于浙江
  • 举报
哲学家进餐问题汇

哲学家进餐问题 2007/05/16 12:36 P.M. /******************** philosophers.cpp 哲学家进餐问题 在多线程中如何避免死锁。 问题描述:有五位哲学家围绕着餐桌坐,每一位哲学家要么思考 要么等待,要么吃饭。为了吃饭,哲学家必须拿起两双筷子(分 别放于左右两端)不幸的是,筷子的数量和哲学家相等,所以每 只筷子必须由两位哲学家共享 下面是一种有问题的解法,因为在某个时刻,五个哲学家同时拿起五根左手边的筷子, 则它们会在同一时候对待右手边的筷子,这样会陷入死锁,但是我测试了,这样的几 率并不高经过几个小时,还没有出现。但是我们可以肯定,理论上是肯定会出现死锁的, 我们不能老是靠运气办事,怎么解决这个问题呢 留给下一步的学习吧 要编译此文件请用多线程版的c++库 ********************/ #include windows.h #include iostream #include process.h #include cstdlib #include ctime using namespace std; unsigned int __stdcall philosopher(void *); void thinking(int); void eating(int); void wait_to_eat(int); void

文档评论(0)

1亿VIP精品文档

相关文档