系统平台实验7-线程同步与多线程编程

上传人:mg****85 文档编号:35521933 上传时间:2018-03-16 格式:DOC 页数:6 大小:83KB
返回 下载 相关 举报
系统平台实验7-线程同步与多线程编程_第1页
第1页 / 共6页
系统平台实验7-线程同步与多线程编程_第2页
第2页 / 共6页
系统平台实验7-线程同步与多线程编程_第3页
第3页 / 共6页
系统平台实验7-线程同步与多线程编程_第4页
第4页 / 共6页
系统平台实验7-线程同步与多线程编程_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《系统平台实验7-线程同步与多线程编程》由会员分享,可在线阅读,更多相关《系统平台实验7-线程同步与多线程编程(6页珍藏版)》请在金锄头文库上搜索。

1、1实验实验 7 线程同步与多线程编程线程同步与多线程编程一、实验目的一、实验目的通过本实验了解和掌握线程的相关知识,使学生 (1)了解系统中线程同步的基本原理。 (2)了解和熟悉多线程编程及线程访问控制。二、实验内容二、实验内容1. 生产者生产者-消费者问题消费者问题 用信号量实现生产者-消费者问题。 分析:信号量的考虑 这里使用 3 个信号量,其中两个信号量 empty 和 full 分别用于解决生产者和消费者线 程之间的同步问题,mutex 是用于这两个线程之间的互斥问题。其中 empty 初始化为 N(缓 冲区的单元数),mutex 初始化为 1,full 初始化为 0。 程序流程如下:

2、 1) 开始-建立有名管道-打开有名管道-初始化 3 个信号量-创建消费者和生产者两 个线程。 2) 生产者线程。wait 操作(empty)-wait 操作(mutex)-写管道-signal 操作(full)- signal 操作(mutex) 。 3) 消费者线程。请自己实现。 源代码:exp71.c #include #include #include #include #include #include #include #include #include #include #define FIFO “myfifo“ #define N 5 int lock_var; time_t

3、end_time; char buf_r100;定义 buf_r 数组表示缓冲区 sem_t mutex,full,empty;互斥信号量木特性,信号量 empty 表示缓冲池中空幻吃区适量,full 表示满缓冲区适量 int fd; void producer(void *arg); void consumer(void *arg);2int main(int argc,char *argv) pthread_t id1,id2;pthread_t mon_th_id;int ret; end_time=time(NULL)+10; 创建管道if(mkfifo(FIFO,0777|O_CRE

4、AT)5#include int value=0; void *runner(void *param); int main(int argc, char* argv) int pid;pthread_t tid;定义一个线程标识符pthread_attr_t attr;pid=fork();给父进程 fork 一个子进程if(pid=0)pthread_attr_init(初始化进程变量pthread_create(pthread_join(tid,NULL);等待 tid 线程运行结束,然后开始运行printf(“CHILD:value=%dn“,value);else if(pid0)wa

5、it(NULL);printf(“PARENT:value=%dn“,value); void *runner(void *param)定义一个线程函数 value=5;pthread_exit(0); 实验任务:写出程序运行结果,并给出具体分析(为什么会出现这样的结果) ,通过这 个程序深入理解进程和线程的运行机制。 答:程序开始赋值给 value 为 0,而 pid 进程的运行函数任务是给 value 赋值为 5。 然后执行子线程,输出:CHILD:value=5.最后执行父线程输出:PARENT:value=06三、实验内容及步骤三、实验内容及步骤第一:首先创建管道,然后初始化缓冲区,之后打开管道初始化互斥信号量和 empty 和 full 缓冲区,最后创建生产者和消费者线程。 第二:定义一个线程并初始化为默认值,之后定义一个父进程给父进程 fork 一个子进 程,最后定义一个线程运行程序并运行程序。四四 心得体会心得体会通过这次试验我感觉很多东西都不知道,然后做实验的时候,函数都是自己慢慢 查资料的,这次试验至少也让我对进程和线程的结合使用有了更直观的认识。了解了 系统中线程同步的基本原理。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号