windows多线程开发中常用到事件对象(Handle)
Handle实际上是同步对象的一种,跟java中的wait() notify()类似
举个例子说吧
两个线程 A B,A执行完后才能执行B
那么就可以采用Handle
伪代码如下
ThreadA
run{
do something;
SetEvent(handle);//A执行完了,通知线程B
}
ThreadB
run(){
WaitForSingleObject(handle, INFINITE); //阻塞等待A完成
do something;
ResetEvent(handle);
}
Handle就跟开关类似,共两个状态‘开’‘关’
SetEvent(handle)是设置为true,也就是开
SetEvent(handle)后会触发WaitForSingleObject函数
Handle实际上是同步对象的一种,跟java中的wait() notify()类似
举个例子说吧
两个线程 A B,A执行完后才能执行B
那么就可以采用Handle
伪代码如下
ThreadA
run{
do something;
SetEvent(handle);//A执行完了,通知线程B
}
ThreadB
run(){
WaitForSingleObject(handle, INFINITE); //阻塞等待A完成
do something;
ResetEvent(handle);
}
Handle就跟开关类似,共两个状态‘开’‘关’
SetEvent(handle)是设置为true,也就是开
SetEvent(handle)后会触发WaitForSingleObject函数