多线程设计是否需要考虑线程异常终止的情况。 多线程设计是否需要考虑线程异常终止的情况。比如说。 我在线程里用了锁,在上锁的之后线程因为系统的其它原因(如:系统资源缺乏或被一些工具软件强行终止了)那么我在线程设计的时候要不要考虑这些情况呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如何是线程自己运行的代码出了问题,一定要会错误捕捉机制,使用如下语句:__try{ WaitForSingleObject(hMutex,INFINITE); ... ReleaseMutex(hMutex);}__catch(EXCEPTION_EXECUTE_HANDLE){ ReleaseMutex(hMutex); }当前线程中如何WaitForSingleObject与ReleaseMutex之前的代码出了问题,那么__Catch语句就会出现捕捉到,然后释放互斥。如果没有__catch,一旦代码执行出错,另的线程等待这个互斥时,如果只等待若干秒,就会返回WAIT_ABANDONED,如果无限等限,就会产生死锁问题。所以多线程设计需要考虑线程异常终止情况如果是其他的人为外在原因产生问题,程序员就不需要考虑了。 刚才写错了,应该是:__try { WaitForSingleObject(hMutex,INFINITE); ... ReleaseMutex(hMutex); } __except(EXCEPTION_EXECUTE_HANDLE) { ReleaseMutex(hMutex); } 所有的__catch改成__except 分不够 - - 一个帖子问两个问题了 同一程序在单、双核主机中内存占用率差别极大,附代码。 大家谈谈对学历的看法 怎么指定某网卡收发数据? 如何同步这个线程?请大家指教!!! 请教如何只刷新控件部分区域的问题 谢谢 谁能解释一下共享数据段??? 专业源代码供应 在对象内部使用delete this删除该对象,会不会不安全? 如何在sdk程序中获得.lnk文件的icon? 急高手们请帮个忙:为什么我运行下面程序会内存崩溃呢 急 转贴:硅谷失业华人工程师枪杀老板
__try
{
WaitForSingleObject(hMutex,INFINITE);
...
ReleaseMutex(hMutex);
}
__catch(EXCEPTION_EXECUTE_HANDLE)
{
ReleaseMutex(hMutex);
}
当前线程中如何WaitForSingleObject与ReleaseMutex之前的代码出了问题,那么__Catch语句就会出现捕捉到,然后释放互斥。如果没有__catch,一旦代码执行出错,另的线程等待这个互斥时,如果只等待若干秒,就会返回WAIT_ABANDONED,如果无限等限,就会产生死锁问题。所以多线程设计需要考虑线程异常终止情况如果是其他的人为外在原因产生问题,程序员就不需要考虑了。
__try
{
WaitForSingleObject(hMutex,INFINITE);
...
ReleaseMutex(hMutex);
}
__except(EXCEPTION_EXECUTE_HANDLE)
{
ReleaseMutex(hMutex);
}
所有的__catch改成__except