阅读者写入者问题的java实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
阅读者写入者问题的java实现.doc

阅读者-写入者问题的java实现 完成人::计本022班 XXXXXXXXX 报告日期: 2004.10.21 小组成员责任分配情况: 类Cushion, MainTest XXXXXXX负责编写 类Reader, Writer, Critical, 实验报告XXX负责 程序调试三人共同完成 一.报告主要内容 1.设计思路: (1).Critical类的功能主要是保存读写的互斥量,初始时将互斥量置零. Cushion类的功能是作为不能被执行的读写者的缓冲区使用 Reader类创建一个读者线程 Writer类创建一个写者进程 (2)先随机产生一个读者/写者 (3)检测读写互斥量,读者在写者互斥量为0时才可以被创建,否则进入等待队列,若该队列已满则读者离开;写者大抵相类似,不同的是写者进入之前需要检测读者和写者两个互斥量. (4)在创建读者/写者之时,由构造函数用start()启动线程,执行中以sleep()模拟操作. (5)在预设的来者次数结束后,检测等待的读写者队列,分别凊空.. 2.主要数据结构:等待队列由数组来实现 3.主要代码结构(C++/Java:类图,类说明;C:函数调用图,函数原型,说明) 本试验用java完成.完成工具为JCreator 类结构如下图: 4. 对难懂的代码段分析说明 在类Cushion中,min()函数的功能是返回进入队列最早的读写者序号.delete()的功能则是在队列中删除已经出去的读写者序号. 在类读者中,用了一个局部变量numu,其作用是保存静态变量的值,让读者的到达和离去序号一致,不会受到静态数据变化的影响;在类写者中也有起类似作用nunu变量. 构造函数的多态表示是由于两次创建读写者时间不同(一次是开始时创建,一次是凊空的需要),为了让序号一致,所以调用不同的构造函数. 二.实验结果 1.基本数据 (1)源程序代码行数: 206 (2)完成实习投入的时间(小时数)每人15小时左右, (3)小组讨论次数:四次 2.测试数据(输入)设计:数据是随机产生的,循环次数由一个为cout的局部变量控制 3.测试结果(输出)分析: 左图是读者先来的结果 右图是写者先来的结果 下面选取写者先到情况进行分析: 写者0到达,读者0和1到达进入队列等待,写者1和2到达相继进入写者等待队列,读者2到达,写者3到达都相继进入队列等待,随后读者3写者4.5.6都进入队列 三.实验体会 1.实验过程中遇到的问题及解决过程 错误分析:因为用布尔型互斥量来标志读者存在,所以当读者0执行时Rmutex置真,此时就可以让读者进而写者不进,后续读者进入,但不好的是,此时读者出的话,就会无意中修改Rmutex的值使其为假,此时来一个写者的话,就会误认为此时没有读者在里面而进入,从而错误. 解决方法:我们改变了设置布尔值作为互斥量的办法,改为用一个整型值作为计数,多一个读者时则加一,读者操作完成则减一,这样就能保证在读者为走光之前都没有写者能够执行. 在数组的边界控制上出的问题,因为size和数组并没有直接挂钩,所以当size超标时没有问题,但一旦应用于数组时则报错, 解决方法:严格控制size值的大小,不让它越界. 2.实验体会和收获 (1)先说好的一面,此次试验充分考察了我们编程实现现实问题的能力,对操作系统的相关知识也有了进一步的认识; (2)不足的地方在于:在编程方面,对于有计划的编写代码还缺乏经验,所以程序条理性比较差,在运用java编程的时候,对于语言相关的API的熟悉程度还不够,因此效率低下;在人员磨合上我们做的也实在不够,不能充分发挥小组人员的优势,常常需要比编程更多的时间来说明彼此的代码,也影响了进度.另外,由于我们错会了试验报告的意思,没有令读写操作全部从文件中读出再执行,作为补救,我们将sleep()时间的产生由读文件来产生. 参考文献目录 计算机操作系统 汤子瀛 等著 Java编程思想 Bruce·eckel著 问题求解与编程概念 Maureen Spra

文档评论(0)

gtez + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档