win32相关对共享资源操作几种方式

项目中编写了一个dll,这个dll是被web服务器端调用,dll中含有共享资源调用,由此涉及到进程与线程对共享资源的访问问题;

进程互斥相关操作,可以跨进程:


创建一个名字为none互斥对象,FALSE:表示用户无此信号互斥;TRUR表示用户拥有此信号互斥
HANDLE m_mutex;
m_mutex = ::CreateMutex(NULL, FALSE, ("none"));


//关闭互斥操作

::CloseHandle(m_mutex);


//释放当前线程拥有的互斥对象,以使其它线程可以拥有互斥对象,对被保护资源进行访问
::ReleaseMutex(m_mutex);

确保拥有互斥对象的线程对被保护资源的独自访问
DWORD d = WaitForSingleObject(m_mutex, INFINITE);

//打开某名称的互斥信号,

HANDLE m_hMutex = OpenMutex(MUTEX_ALL_ACCESS,FALSE, _T("jetchen"));  


临界段(用在线程同步)

      CRITICAL_SECTION gDlink_csCommunicationSync;

// initialize critical section

InitializeCriticalSection(&gDlink_csCommunicationSync);


// now it critical!
EnterCriticalSection(&gDlink_csCommunicationSync);


// release critical section
LeaveCriticalSection(&gDlink_csCommunicationSync);


DeleteCriticalSection(&gDlink_csCommunicationSync);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值