Visual C++网络编程经典案例详解 第3章 多线程与异步套接字编程 实现线程同步 互斥对象 使用API函数操作互斥对象

互斥对象和临界区对象和事件对象作用一样
用于实现线程同步
互斥对象可以在线程中使用

CreateMutex()创建并返回互斥对象 原型如下
HANDLE CreateMutex(
  LPSECURITY_ATTIRIBUTES lpMutexAttributes,
  BOOL bInitialOwner,
  LPCTSTR lpName
);

调用成功 返回新创建的互斥对象句柄
否则 返回NULL

参数lpMutexAttributes指定新创建互斥对象的安全属性
如果参数为NULL 表示互斥对象拥有默认的安全属性

参数bInitialOwner表示互斥对象的拥有者
如果为true,则表示创建该互斥对象的线程拥有其所有权
如果为false,表示创建互斥对象的线程不能拥有互斥对象的所有权

参数lpName表示互斥对象的名称
若参数为NULL,表示程序创建的是匿名对象
如果用户为该参数指定值 则在程序中可以调用函数OpenMutex()打开一个
命名的互斥对象

使用互斥对象实现线程的同步

#include <windows.h>                            //包含头文件
#include <stdio.h>

DWORD WINAPI myfun1(LPVOID lpParameter);//声明线程函数
DWORD WINAPI myfun2(LPVOID lpParameter);
HANDLE hmutex;
int a=0;                                        //定义全局变量a

int main()
{    
    hmutex=::CreateMutex(NULL,FALSE,NULL);            //创建互斥对象并返回其句柄
    HANDLE h1,h2; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值