主线程和子线程的关系问题

gpmn 2001-07-13 11:53:02
假如有一个信号量hMutex,子线程首先进入,在该子线程退出之前、且释放资源hMutex之前,如果主线程开始执行,并用
WaitForsingleObject(hMutex,INFINIT)等待,是不是子线程也被置于等待状态?
这时是不是就处于死锁状态????又、主线程创建该子线程;
ChildThread()
{
WaitForsinglObject(hMutex,INFINIT);
,,,,,
,,,,,
ReleaseMutex(hMutex);
}
MainProc
{
AfxBegingThread(ChildThread);
....
....
WaitForsinglObject(hMutex,INFINIT);//如果子线程仍然在执行且没有释放资源怎么办???????
,,,,,
,,,,,
ReleaseMutex(hMutex);
}
我的程序看起来就象是主线程进入等待以后,子线程也同时被刮起;不知道是不是这个原因;
如果果然如我猜测,怎么在主线程和子线程之间同步,而且主线程挂起时,子线程一样可以运行;(理论上说,主子线程之间不该这样影响啊)
...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gpmn 2001-07-13
  • 打赏
  • 举报
回复
可以看http://www.csdn.net/expert/topic/191/191365.shtm
其实并没有解决,因为线程的无序性,所以有时出了问题,有时没有,搞得我以为正确了;
red_eyes 2001-07-13
  • 打赏
  • 举报
回复
不会的,线程之间是独立的运行的。不会相互干扰。
gpmn 2001-07-13
  • 打赏
  • 举报
回复
to fesd:fasle
to oldnew:i think so, but.......
oldnew 2001-07-13
  • 打赏
  • 举报
回复
不应该吧,线程都是自己独立的执行单元,
Fesd 2001-07-13
  • 打赏
  • 举报
回复
你的CreateMutex()的第二个参数是什么?
gpmn 2001-07-13
  • 打赏
  • 举报
回复
高手在哪里?
高手在哪里?
高手在哪里?
高手在哪里?
高手在哪里?
高手在哪里?
高手在哪里?
悲乎!

15,471

社区成员

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

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