满意答案

XY_P8q

2013.08.24

采纳率:58%    等级:12

已帮助:5848人

// 哲学家进餐问题

#define WIN32_LEAN_AND_MEAN

#include

#include

#include

DWORDWINAPIPhilosoperThreadFunc(LPVOID);

#define PHILOSOPERS 5

HANDLE chop_sticks[PHILOSOPERS];

HANDLE threads[PHILOSOPERS];

intmain(int argc,char** argv)

{

for(inti=0;i

chop_sticks[i]=CreateMutex(NULL,FALSE,NULL);

for(inti=0;i

threads[i]=CreateThread(NULL,

0,

PhilosoperThreadFunc,

(PVOID)i,

0,

NULL);

WaitForMultipleObjects(PHILOSOPERS,threads,TRUE,INFINITE);

returnEXIT_SUCCESS;

}

DWORD WINAPI PhilosoperThreadFunc(LPVOIDn)

{

inti=(int)n;

HANDLEmy_chop_sticks[2];

my_chop_sticks[0]=chop_sticks[i];

my_chop_sticks[1]=chop_sticks[(i-1>0)?i-1:PHILOSOPERS];

srand(GetTickCount());

while(1){

Sleep((rand()%8)*500+500);

printf("Philosopher #%d want to eat\n",i);

WaitForMultipleObjects(2,my_chop_sticks,TRUE,0);

printf("Philosopher #%d is eating\n",i);

ReleaseMutex(my_chop_sticks[0]);

ReleaseMutex(my_chop_sticks[1]);

printf("Philosopher #%d finished his dinner\n",i);

}

}

00分享举报

and型变量哲学家问题C语言,利用AND型信号量解决哲学家进餐问题,要windows下的C/C++的完整源代码程序。(五个哲学家五只筷子)...相关推荐

  1. c语言int型等长输出,c语言先程序设计15第十四讲第六章下.ppt

    c语言先程序设计15第十四讲第六章下 高级语言程序设计 主讲教师:贾彩燕 计算机与信息技术学院 计算机科学与技术系 cyjia@ 第六章 数组 主要内容 数组的概念.定义和使用 数组程序实例 数组作为 ...

  2. C++学习笔记(二)字符型变量、ASCII、转义字符、字符串型、布尔类型、数据输入、算术运算符、前后置递增减、赋值运算符、比较运算符、逻辑运算符

    1.字符型变量 char 字符型变量名 = '单个字符'; char ch = 'a'; 只能使用单引号!!!双引号会认为是字符串变量! 单引号内只能是一个字符,该字符对应ASCII码值. char ...

  3. 设x,y,z均为int型变量,请用c语言表达式描述,C语言期末复习卷习题

    C语言期末复习卷习题 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所得收入( ...

  4. C语言--bool型变量问题详解

    环境linux下 GCC编译器 #include <stdio.h> #include <stdbool.h> #include <string.h> int ma ...

  5. C语言中字符型变量与整型变量的联系

    1)字符型变量可以与整型变量一样进行算术运算(使用字符数据的ASCII码值进行运算的) 例1: char m = 'A'; char n = 32; //char类型直接赋值整型,此整型为对应字符的A ...

  6. c语言编译及下载环境变量,windows 下使用g++ 编译器-Go语言中文社区

    转自https://blog.csdn.net/xiaoliuliu2050/article/details/53420792 名词解释:GNU("Gnu's Not Unix"的 ...

  7. 关于字符型变量的几点说明

    字符型变量的本质是整形常量 字符型变量可以和整形量相加 以下为常见的4种情况.供读者们参考使用: 需要强转

  8. 字符型变量与整型变量的比较

    [知识点] 字符型变量与整型变量比较时,字符型变量会自动转换为对应的ASCII码值,然后与整型变量比较. 如字母的ASCII码值为:'A'-'Z'~65-90, 'a'-'z'~97-122 [算法代 ...

  9. win7语言栏不显示的解决办法

    一.任务栏输入法(语言栏)不显示 桌面任务栏右侧的输入法状态(也就是语言栏)不见了,通常有以下几种解决方法: 1.禁用了语言栏在任务栏显示: 在任务栏单击鼠标右键,弹出快捷菜单,把鼠标移动到" ...

最新文章

  1. 让按钮倒计时5秒以后才能再次点击提交 倒计时按钮
  2. kthread_work和kthread_worker机制
  3. 越狱Season 1-Episode 15: By the Skin and the Teeth
  4. DMAR(DMA remapping)与 IOMMU
  5. 单证票据识别之关键信息提取
  6. 树状数组(区间,单点间操作)
  7. Flink 实践教程-进阶(11):SQL 关联:Regular Join
  8. Microbiome:中国科学家完成鸡肠道微生物宏基因集的构建(一作解读,张和平、魏泓、秦楠点评)
  9. [转贴]IE中 无法打开internet站点 。。。。。
  10. 《童虎学习笔记》14分钟结合ProxySQL处理超半数MGR节点故障
  11. 程序员的插画成长之路并不平坦
  12. PyScripter显示行号
  13. Sniffer报文放送
  14. ubuntu设置MySQL密码
  15. 蜂鸣器的结构原理及制作
  16. 绿宝石rom下载_口袋妖怪绿宝石下载
  17. 杂事记诗-- 读网文《穷鬼的上下两千年》有感
  18. cypher语法 | Neo4j cypher增删查改
  19. 【软件工程实践】Hive研究-Blog10
  20. 50种网络故障及解决方法

热门文章

  1. 网络编程:TCP实现文件上传
  2. Python18行代码做出来这样有点浪漫,又有点极客的“内涵”图
  3. 大数据技术周报第 003 期
  4. 深入理解计算机系统视频版,绝对干货
  5. 【opencv学习】单应性变换Homography
  6. leetcode —— 877. 石子游戏
  7. leetcode - 543. 二叉树的直径
  8. 机器学习:空间变换进行非线性分类
  9. Procrustes Analysis(普氏分析)
  10. Ubuntu系统全盘备份与恢复,亲自总结,实测可靠