码迷,mamicode.com
首页 > 其他好文 > 详细

信号量解决哲学家进餐问题

时间:2019-07-02 00:20:27      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:str   target   应该   auto   pos   哲学   生产   第七版   pack   

参考线程同步之信号量(sem_init,sem_post,sem_wait) - 郑志强Aloha - 博客园

以及《操作系统概念》第七版 第六章 项目:生产者-消费者问题

题目描述:

哲学家进餐问题描述有五个哲学家,他们的生活方式是交替地进行思考和进餐,n哲学家们共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五支筷子,n平时哲学家进行思考,饥饿时便试图取其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐,n进餐完毕,放下筷子又继续思考。

如图。

 

技术图片
 

编号都为0-4。哲学家0-3左边的筷子编号为i,右边为i+1。

哲学家4左边的筷子为4,右边为0。(因为是圆桌嘛)

代码:

这里ret应该用int。。忘了改了。

技术图片
 

 

技术图片
 

 

技术图片
 

 

技术图片
 

 

技术图片
 

 

技术图片
 

效果图:

 

技术图片
 

遇到的问题:

 

技术图片
 

解决:应该放到main函数里初始化

 

技术图片
 

解决:太低级的错误了。。。。居然用了函数名做变量名。

 

技术图片
 

信号量解决哲学家进餐问题

标签:str   target   应该   auto   pos   哲学   生产   第七版   pack   

原文地址:https://www.cnblogs.com/lqerio/p/11117672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!