使用互斥对象CMutex实现不同的进程间通信


使用CMutex对象可以在不同的进程的线程间实现资源的安全共享.
程序实例:
创建一个工作进程,使用CMutex锁定数据3秒,然后解除锁定,2秒后再次锁定并循环.开启多个进程,可以发现同时只有一个工作进程可以锁定数据


CMutex g_Mutex(FALSE, "Mutex1");
//在不同应用程序间实现线程的同步必须为互斥量取一个名字
UINT MutexThread(LPVOID pParam)
{
     HWND hwnd = (HWND)pParam;
     while(TRUE)
     {
          CString str;
          g_Mutex.Lock();
          str = "锁定数据";
          ::SetDlgItemText((HWND)pParam,IDC_EDIT1,str);
          ::Sleep(3000);
          g_Mutex.Unlock();
          str = "释放锁定";
          ::SetDlgItemText((HWND)pParam,IDC_EDIT1,str);
          ::Sleep(2000);
     }
     return 0;
}
/
//启动线程代码
void CMutexProcessSynDlg::OnRun() 
{
     // TODO: Add your control notification handler code here
     HWND hWnd = GetSafeHwnd();

     //获取窗口句柄

     AfxBeginThread(MutexThread,hWnd);
     //产生新进程
     
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值