C# 多线程模拟哲学家就餐问题+实验报告
2022-12-21 17:45:00 296KB 多线程模拟哲学家就餐问题
1
银行家算法 C#图形实现 本源码实现 1. 使用信号量的方式模拟哲学家就餐问题。 2. 用一个输入变量控制是否有左撇子哲学家。如果有,其数量由随机数生成。 3. 模拟程序分为两种情况, (1) 可能发生死锁的情况,输出发生死锁时的资源分配状态和历史资源分配状态; (2) 设计没有死锁发生的程序,当每个哲学家至少完成一次就餐后,输出资源分配给哲学家的当前状态和历史状态。 4. 具备图形界面,动态显示哲学家就餐的过程。
2022-12-21 17:30:53 49KB C# 哲学家就餐 图形界面
1
使用java多线程直接反馈进程调度问题,通过哲学家就餐问题的实现,说明了资源申请与释放的过程。解压下载的压缩文件后,需导入eclipse运行,或根据"说明.txt"中的方法运行。
2022-12-04 19:26:26 343KB java 多线程 哲学家就餐
1
java哲学家就餐问题(eclipse版)java哲学家就餐问题(eclipse版)java哲学家就餐问题(eclipse版)java哲学家就餐问题(eclipse版)
2022-11-27 10:37:06 231KB java 哲学家 就餐问题
1
最新哲学家就餐问题-操作系统,解决并发和互斥 哲学家进餐问题,JAVA编写,后台课参考,多线程实现,建议自行设计界面。完整注释
1
有五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人之间放一只筷子。每个哲学家的行为是思考,感到饥饿,然后吃通心粉。为了吃通心粉,每个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子
2022-10-17 18:08:15 1.86MB 哲学家 操作系统
1
经典的哲学家就餐问题,这里是6个哲学家就餐,用p,v原语实现避免死锁,linux下运行
2022-05-21 16:22:28 29KB 哲学家就餐问题
1
嵌入式µCOS-II操作下的信号量实验——哲学家就餐问题实验报告
2022-05-18 21:48:12 78KB µCOS-II 信号量 实验报告
1
哲学家就餐问题(整理)的几个总结WaitForSingleObject(mutex, INFINITE); cout << "philosopher " << myid << " begin......" << endl; ReleaseMutex(mutex); //初始状态为THINKING mystate = THINKING; leftFork = (myid) % PHILOSOPHER_NUM; rightFork = (myid + 1) % PHILOSOPHER_NUM; while (true) { switch(mystate) { case THINKING: // 改变状态 mystate = HUNGRY; strcpy(stateStr, "HUNGRY"); break; case HUNGRY: strcpy(stateStr, "HUNGRY"); // 先检查左筷子是否可用 ret = WaitForSingleObject(semaphore[leftFork], 0); if (ret == WAIT_OBJECT_0) { //左筷子可用就拿起,再检查右筷子是否可用 ret = WaitForSingleObject(semaphore[rightFork], 0); } break; case DINING: // 吃完后把两支筷子都放下 ReleaseSemaphore(semaphore[leftFork], 1, NULL); ReleaseSemaphore(semaphore[rightFork], 1, NULL); // 改变自己的状态 mystate = THINKING; strcpy(stateStr, "THINKING"); break; } // 输出状态 WaitForSingleObject(mutex, INFINITE); cout << "philosopher " << myid << " is : " << stateStr << endl; ReleaseMutex(mutex);
2022-04-22 19:12:42 1.57MB 哲学家 就餐
1
在ucos2操作系统下,解决互锁问题。即公共资源的分配问题。
2022-04-10 20:39:42 135KB 互锁 ucos2
1