- 259
- 0
- 约4.04千字
- 约 13页
- 2016-12-25 发布于重庆
- 举报
生产者——消费者问题 一、实验目的 通过实验,掌握Windows和Linux环境下互斥锁和信号量的实现方法,加深对临界区问题和进程同步机制的理解,同时巩固利用Windows API和Pthread API进行多线程编程的方法。 二、实验内容 1. 在Windows操作系统上,利用Win32 API提供的信号量机制,编写应用程序实现生产者——消费者问题。2. 在Linux操作系统上,利用Pthread API提供的信号量机制,编写应用程序实现生产者——消费者问题。3. 两种环境下,生产者和消费者均作为独立线程,并通过empty、full、mutex三个信号量实现对缓冲进行插入与删除。4. 通过打印缓冲区中的内容至屏幕,来验证应用程序的正确性。三、实验步骤㈠设计思路①声明三个信号量,互斥信号量mutex,计数信号量empty初始化值100,技术信号量full初始化值0,并声明一个缓冲区char类型的buffer数组,大小为10,初始值为N。②produce利用信号量形成对buffer临界生产,添加一个元素进去,赋值为A。consume利用信号量形成对buffer临界消费,从buffer中拿出来一个元素,并将buffer中原来元素赋为B。每访问一次临界区,就输出buffer值。③创建多线程,其中5个生产者,和5个消费者,每个线程最多操作缓冲区10次。㈡流程图申明3个信号量,mutex,e
原创力文档

文档评论(0)