实验四:进程同步与通信

这篇博客详细介绍了在Windows环境下,通过VC6.0进行进程同步与通信的实验,包括使用临界区对象模拟售票功能、信号量解决资源竞争、实现生产者-消费者模型,以及探讨了进程间通信的共享内存文件映射方式。实验内容涵盖了P,V操作、多线程并发执行机制、Windows同步对象API和进程通信API的使用。
摘要由CSDN通过智能技术生成

一、实验目的:
1.掌握基本的同步与互斥算法,理解P,V操作。
2.理解生产者消费者模型,了解其它典型的同步互斥模型,如哲学家就餐、读者-写者模型等。
3.学习使用Windows中基本的同步对象,掌握相关API的使用方法。
4.了解Windows中多线程的并发执行机制,实现进程的同步与互斥。
5.Windows进程间通信的方法有很多,了解其中的典型类型,如命名管道、文件映射等,掌握进程间通信的基本原理。了解windows系统环境下的进程通信机制,熟悉windows系统提供的进程通信API。
二、实验环境:VC6.0

三、实验内容:
(写出主要的内容)
PART 1 进程同步与互斥
1.使用临界区对象,模拟售票功能。
(1)运行截图

在这里插入图片描述

(2)在分析程序运行结果的基础上,增加一个函数,模拟退票功能,并在主函数中加入适当的语句。
代码:

#include <windows.h>

#include
using namespace std;

DWORD WINAPI SellPro_1( LPVOID lpParameter);
DWORD WINAPI SellPro_2( LPVOID lpParameter );
DWORD WINAPI SellPro_3( LPVOID lpParameter );

int tickets=100;
CRITICAL_SECTION critical_sec; //定义关键区域
void main()
{
HANDLE hThread1;
HANDLE hThread2;
HANDLE hThread3;

InitializeCriticalSection(&critical_sec); //初始化关键区域
hThread1=CreateThread(NULL,0,SellPro_1,NULL,0,NULL);
hThread2=CreateThread(NULL,0,SellPro_2,NULL,0,NULL);
	hThread3=CreateThread(NULL,0,SellPro_3,NULL,0,NULL);	

CloseHandle(hThread1);
CloseHandle(hThread2);
	CloseHandle(hThread3);

Sleep(4000);

}

DWORD WINAPI SellPro_1( LPVOID lpParameter )
{
while(TRUE)
{

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值