操作系统实验:用临界区对象和互斥信号量实现线程的互斥

实验三:线程的互斥


一、实验目的

(1)熟练掌握Windows系统环境下线程的创建与撤销。
(2)熟悉Windows系统提供的线程互斥API。 
(3)使⽤Windows系统提供的线程互斥API解决实际问题。
(4)分别两种方法--使用临界区对象和互斥对象完成实验:线程的互斥。

二、实验准备

LPCRITICAL_SECTION hCriticalSection; ----定义指向临界区对象的地址指针
CRITICAL_SECTION Critical; ----定义临界区

(1).临界区对象
  临界区对象(CriticalSection)包括初始化临界区(InitializeCriticalSection())、进入临界区(EnterCriticalSection())、退出临界区(LeaveCriticalSection())及删除临界区(DeleteCriticalSection())等API函数。
  1.初始化临界区
InitializeCriticalSection()⽤于初始化临界区对象。
   原型:
VOID InitializeCriticalSection(
LPCRITICAL_SECTION  lpCriticalSection );
   参数说明:
lpCriticalSection:指出临界区对象的地址。
  2.进⼊临界区
EnterCriticalSection()等待进入临界区的权限,当获得该权限后进入临界区。
   原型:
VOID EnterCriticalSection(
LPCRITICAL_SECTION lpCriticalSection );
   参数说明:
lpCriticalSection:指出临界区对象的地址。
  3.退出临界区
LeaveCriticalSection()释放临界区的使⽤权限。
   原型:
VOID LeaveCriticalSection(
LPCRITICAL_SECTION lpCriticalSection );
   参数说明:
lpCriticalSection:指出临界区对象的地址。
  4.删除临界区
DeleteCriticalSection()删除与临界区有关的所有系统资源。
   原型:
VOID DeleteCriticalSection(
LPCRITICAL_SECTION  lpCriticalSection );
   参数说明:
lpCriticalSection:指出临界区对象的地址

static HANDLE hMutex = NU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司马道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值