1 / 18
文档名称:

linux多线程实验报告.doc

格式:doc   大小:392KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

linux多线程实验报告.doc

上传人:2823029757 2021/12/21 文件大小:392 KB

下载得到文件列表

linux多线程实验报告.doc

文档介绍

文档介绍:. .
-优选
实验八 Linux多线程实验
报告撰写人
专业班级
学号
完成时间
。。。
。。。。

。。。
实验目的
了解什么是多线程,熟悉LINUX的多线程机制;
掌握利用信号处理Linux多线程的同步问题;
掌握利用信号量处理Linux多线程的互斥问题;
运用Linux多线程的同步机制和互斥机制实现生产者消费者的编程。
实验内容
"生产者-消费者〞问题如下:有一个有限缓冲区和两个线程:生产者和消费者。他们分别不停地把产品放入缓冲区、从缓冲区中拿走产品。一个生产者在缓冲区满的时候必须等待,一个消费者在缓冲区空的时候也必须等待。另外,因为缓冲区是临界资源,所以生产者和消费者之间必须互斥执行。它们之间的关系如图1所示。现在要求使用共享内存来模拟有限缓冲区,并且使用信号量来解决"生产者-消费者〞问题中的同步和互斥问题。
1生产者和消费者问题描述
2. 问题描述:假设有五位哲学家围坐在一X圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停顿思考,思考的时候也停顿吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利面,所以假设哲学家必须用两只餐叉吃东西。他们只能使用自己左右手边的那两只餐叉。请用Linux线程编程解决。
. .
-优选
2 哲学家进餐问题示意图
实验过程与结果
操作过程
错误
解决方法
实验1
步骤一:

在不同的编译器中for循环的用法不太一样,在这里最好不要使用for〔int i=0; ;〕
最好在外声明int i在for循环里直接写i=0
. .
-优选
步骤二:
编译代码并且运行代码
步骤三:
运行完毕后,显示以下代码:
生产者消费者先后生产数据以及取出数据,此程序中设置了两个消费者两个生产者,交替进展生产数据消费数据。
实验
步骤一:

. .
-优选
2
步骤二:
编译代码并且运行代码
步骤三:
. .
-优选
实验代码
实验一:
#include <>
#include <>
#include <>
#include <>
#include <sys/>
#include <sys/>
#include <sys/>
#include <sys/>
#define MAX_BUFFER_SIZE 10
.