实验报告
实验名称: 生产者和消费者问题
实验时间: 2011.4.23
实验人员: 陈绪伦 (姓名) 0943041182 (学号) 09 (年级)
实验目的:掌握基本的同步互斥算法,理解生产者和消费者模型,理解读者写者问题。了解
Windows 2000/XP
中多线程的并发执行机制,线程间的同步和互斥。学习使用
API 。
实验环境: WindowsXP + VC6.0
利用
提供的系统接口( API ,应用程序接口)完成程序的功能。 API
是操作
系统提供的用来进行应用程序设计的系统功能接口。
安装
windows.h
实验步骤:
1. 读懂源程序
2. 编辑修改源程序
实验陈述:
1、基础知识:
本 实 验 用 到 几 个 API 函 数 : 1. CreateThread 2. Create Mutex
3. CreateSemaphore
4 . WaitForSingleObject 5. ReleaseSemaphore 6. ReleaseMutex
7. InitializeCriticalSection 8. EnterCriticalSection
9. LeaveCriticalSection
这些函数的作用:1.
在主线程的基础上创建一个新线程
2. 找出当前系统是否存在进程的失利,没有的话就创建一个互斥体
事件的信号状态,在某一线程中调用该函数时,线程暂
时挂起,如果在挂起的
毫秒内,线程所等待的对象变为有信号状态,则该函数立即返回;如
果超时时间已经到达
所指向的对象还没有变成有信号状态,函数照样返回。参
数
所指向的对象变为有信号状态时为止。
5. 由指定的数量增加了指定了的信号量的计数
6. 释放 由线程拥有的的互斥体。
7. 初始化一个临界资源对象
8. 让每个线程都顺序的访问临界变量,临界资源
9. 离开临界区,释放临界资源让更多线程可以得到执行
2、生产者/消费者问题(CP 问题)
程序中有几个生产者 4
个
每一个生产者所读取的文件名称分别是什么 source0.txt; source1.txt; source2.txt;
source3.txt
评论0