下载此文档

科学家用餐问题.doc


文档分类:管理/人力资源 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
湖南农业大学东方科技学院
学 生 实 验 报 告
姓名: 田攀 年级专业班级 2006级计算机1班 日期 2008 年11月 19 日 成绩
课程名称
操纵系统
实验名称
编程实现进程(线程)同步和互斥(4)
实验类型

综合
【实验目的、要求】
(1)通过编写程序实现进程同步和互斥,使学生掌握有关进程(线程)同步与互斥的原理,以及解决进程(线程)同步和互斥的算法,从而进一步巩固进程(线程)同步和互斥等有关的内容。
(2)了解Windows2000/XP中多线程的并发执行机制,线程间的同步和互斥。
(3)学****使用Windows2000/XP中基本的同步对象,掌握相应的API函数。
(4)掌握进程和线程的概念,进程(线程)的控制原语或系统调用的使用。
(5)掌握多道程序设计的基本理论、方法和技术,培养学生多道程序设计的能力。
(6)经调试后程序能够正常运行。
(7)采用多进程或多线程方式运行,体现了进程(线程)同步和互斥的关系。
(8)程序界面美观。
【实验内容】
在Windows XP操作系统下,使用java编程语言,采用进程(线程)同步和互斥的技术编写程序实现哲学家进餐问题设计一个简单进程(线程)同步和互斥的实际问题。
【实验环境】
多媒体计算机,相关软件
【实验步骤、过程】(含原理图、流程图、关键代码,或实验过程中的记录、数据等)
(1)需求分析:哲学家用餐问题是典型的线程序间通信的问题。五位哲学家坐在餐桌前,他们在思考并在感到饥饿时就吃东西。
每两位哲学家之间只有一根筷子,为了吃东西,一位哲学家必须要用两根筷子。如果每位哲学家拿起右筷子,然后等着拿左筷子,问题就产生了。在这种情况下,就会发生死锁。当哲学家放下筷子时,要通知其他等待拿筷子的哲学家。如下运行结果:
哲学家0在吃饭....
哲学家1在等待拿起第1个筷子
哲学家2在吃饭....
哲学家3在等待拿起第3个筷子
哲学家4在等待拿起第0个筷子
哲学家4在吃饭....
哲学家1在等待拿起第2个筷子
哲学家0在思考....
哲学家1在吃饭....
哲学家3在等待拿起第4个筷子
哲学家2在思考....

用餐
科学家0
科学家1
科学家2
科学家3
科学家4
分配
筷子
等待
思考
得到的筷子为2
得到的筷子为0
筷子为1
用完餐的科学家进入思考
归还筷子
得到筷子
得到筷子
(2)概要设计:为筷子单独创建一个类,它有一个标记变量available来指明是否可用。由于任何时候只有一位哲学家能拿起一根特定的筷子,takeup()方法将被同步。还有一个方法putdown()方法,哲学家进餐完毕后,放下他的筷子。当一位哲学家思考时,他通过think()方法放下他的两根筷子,使其他哲学家可以用餐。
(3)详细设计:
public static void main(String args[])
{
for(int n=0;n<5;n++)
{
cp[n]=new ChopStick(n);
}
f

科学家用餐问题 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人慢慢老师
  • 文件大小69 KB
  • 时间2022-01-13