用事件通知线程退出与给while循环设置条件,有何区别,这种机制有何优势
例如:
while (TRUE){
... ...
if (WaitForSingleObject(pCarMovJudge->m_hThreadExitEvent, 100) == WAIT_OBJECT_0)return ; }
与while (!interrupt)
{
... ...
}
1:事件的使用更加灵活。在等待信号的过程中,程序员可以设置任意的等待超时时间,等待过程中挂起线程,减少不必要消耗,等待超时则线程退出。
2:第二种方法没有上述的优点。尤其线程如果在检测某个条件时,其只有不遗余力的一刻不停的循环检测,显得非常死板且消耗CPU资源。
事件event,可以跨进程。
变量一般是进程中线程之间通知