操作系统生产者消费者问题实验报告

  • 格式:docx
  • 大小:12.67 KB
  • 文档页数:2

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告二

实验名称:一、生产者-消费者问题的多线程解决方案

二、设计一个执行矩阵乘法的多线程程序

日期:2015-10-22 班级:13级计科学号:姓名:

一、实验目的

1.掌握线程的同步与互斥

2.掌握生产者消费者的实现问题

3.掌握多线程的编程方法

4.掌握矩阵乘法的基本计算原理以及实现

二、实验内容

1.生产者-消费者问题的多线程解决方案

2.设计一个执行矩阵乘法的多线程程序

三、项目要求与分析

1.请查阅资料,掌握线程创建的相关知识以及矩阵乘法的相关知识,了解java语言程序编写的相关知识

2.理解线程的实验步骤

在本次试验中,以“生产者-消费者”模型为依据,提供了一个多线程的“生产者-消费者”实例,编写java代码调试运行结果,得出相应的结论。

理解矩阵乘法的实验步骤

四、具体实现

1.生产者-消费者实例

(1)创建一个缓冲信息发送接收通道接口,并创建邮箱盒子类实现,主要代码如下:

ength; j++)

{

ength; j++)

{

" ");

}

"");

}

"");

}

(1)创建多线程类,并实现Runnable接口同步对矩阵进行分行计算,主要代码如下:

etName()+"\t开始计算第 "+(task+1)+"行");

for(int i=0; i<; i++)

{

for(int j=0; j<; j++)

{

[task][i] += [task][j] * [j][i];

}

}

}

;

}

(2)通过不断改变矩阵大小,线程数目,,调试程序,运行结果:

五、所遇问题与解决方法

1.在生产者-消费者多线程试验中,刚开始没有考虑到使用线程睡眠,运行结

果速度之快,没法观看数据变化,后面定义了睡眠控制,使得问题得以解决2.在多线程矩阵开发实验中,刚开始定义矩阵太小,测试结果不太明显,后面

通过把矩阵改大,并且线程数目不断变化使得结果明显。

六、实验总结

深刻了解了生产者消费者多线程,进一步理解了“生产者-消费者”模型。同时也掌握了一些java编程语言相关知识。多线程矩阵实验中,发现矩阵小时,线程越少,运行时间越长;而矩阵过大时,线程数量与运行时间成反比。