进程间线程同步的问题?

guoxiny 2003-02-26 03:26:32
在VC中进程间线程同步的类有CMutex和CEvent,请问大家是如何使用这两个类进行同步呢?能给出简单的实现最好!
...全文
67 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoxiny 2003-02-27
  • 打赏
  • 举报
回复
明白了,非常感谢!
demetry 2003-02-26
  • 打赏
  • 举报
回复
同名的互斥量OS中只能有一个

A:

CMutex mutex(FALSE, "MyMutex")

mutex.Lock();

.........

mutex.UnLock();

B:
CMutex mutex(FALSE, "MyMutex")

mutex.Lock();

.........

mutex.UnLock();
guoxiny 2003-02-26
  • 打赏
  • 举报
回复
oh,原来是这样在创建Event是指定一个同样的名字,我明白了。
那么请问CMutex怎样进行进程间线程的同步呢?
JoeRen 2003-02-26
  • 打赏
  • 举报
回复
进程A
...
HANDLE event=CreateEvent(NULL,FALSE,FALSE,"MYEVENT");
....
WaitForSingleObject(event,INFINITE);
...

进程B
...
HANDLE event=CreateEvent(NULL,FALSE,FALSE,"MYEVENT");
...
SetEvent(event);
...

guoxiny 2003-02-26
  • 打赏
  • 举报
回复
在同一进程中的线程同步,我理解。可是不同进程的线程同步如何做呀?
DoubleJiang 2003-02-26
  • 打赏
  • 举报
回复
up
guoxiny 2003-02-26
  • 打赏
  • 举报
回复
我的理解是在A进程中的CEvent,如何会影响到B进程中的呢?WaitForSingeObject。它们是在不同的地址空间呀!
smallfool 2003-02-26
  • 打赏
  • 举报
回复
CMutex相对简单一些。CEvent相对复杂一些。
其实你只要搞清楚你所作操作的先后顺序,还是容易实现的。
guoxiny 2003-02-26
  • 打赏
  • 举报
回复
在A进程中我有一个CEvent hEvent对象;我在A进程中设置hEvent.SetEvent();在B进程中如何得知在A进程所发生的变化呀?
请各位大侠能不能再详细一点解析一下这里面的原理呀?谢谢!
chenjiming 2003-02-26
  • 打赏
  • 举报
回复
A
{
.....
.....(不需要同步的代码)
SetEvent()
.....(需要同步的代码)
.....
}

B
{
.....
.....(不需要同步的代码)
WaitForSingleObject()
.....(需要同步的代码)
.....
}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧