目录
前言
本实验为课设内容,博客内容为部分报告内容,仅为大家提供参考,请勿直接抄袭,另外,本次实验所用平台是dev c++5.11
1 实验题目
实验四 Windows线程的互斥和同步
2 实验目的
(1) 回顾操作系统进程、线程的有关概念,加深对 Windows 线程的理解。
(2) 了解互斥体对象,利用互斥与同步操作编写生产者-消费者问题的并发程序,加深对 P (即semWait)、V(即 semSignal)原语以及利用 P、V 原语进行进程间同步与互斥操作的理解。
3 实验内容
3.1 步骤
(1)步骤1:打开Dev-C++5.11 新建一个文件,命名为实验4,并保存为cpp文件。
(2)步骤2:将清单5-1的源代码复制到实验4.cpp文件中,并点击编译按钮将其编译成可执行文件,再进入到保存文件的目录下,右键,选择在终端打开,运行编译好的可执行文件,观察运行结果。
(3)步骤3:阅读源程序,找出创建线程的WindowsAPI函数,及其执行的第一个函数。
(4)步骤4:调整生产者和消费者线程的数量,观察运行结果。
(5)步骤5:按清单5-1代码中的注释修改内容,观察运行结果。
(6)步骤 6:根据步骤 4 的结果,并查看 MSDN,回答下列问题:
1)CreateMutex 中有几个参数,各代表什么含义。
2)CreateSemaphore 中有几个参数,各代表什么含义,信号量的初值在第几个参数中。
3)程序中 P、V 原语所对应的实际 Windows API 函数是什么,写出这几条语句。
4)CreateMutex 能用 CreateSemaphore 替代吗?尝试修改程序 5-1,将信号量 Mutex 完全用 CreateSemaphore 及相关函数实现。写出要修改的语句。