win32多线程程序设计笔记(第四章上)(二)

2014-11-23 22:26:02 ? 作者: ? 浏览: 10
SingleObject()等待此mutex的线程就会收到WAIT_ABANDONED_0。有了这个值,我就解开难题了。
举例说明:
[cpp]
HANDLE hBoxKey;
DWORD WINAPI ThreadFun(LPVOID n){
//进入关键区域(情景:关上物品箱,拨下钥匙)
WaitForSingleObject ( hMutex,INFINITE ); //
//处理一些不可分割的操作。。。。。
//(情景:转身拿物品,储物品,去购物。。。。)
//离开关键区域(情景:打开物品箱,拿出储存的物品,插上钥匙)
ReleaseMutex ( hMutex ); //
}
void main(){
//初始化全局锁(情景:生成物品箱的钥匙 )
hBoxKey = CreateMutex( NULL,FALSE,NULL );
//产生两个线程(情景:准备两个人抢一个物品箱 )
HANDLE hMan1 = CreateThread(NULL,0,ThreadFun, ……);
HANDLE hMan2 = CreateThread(NULL,0,ThreadFun, ……);
CloseHandle(hMan1);
CloseHandle(hMan2);
//删除全局锁(情景:删除物品箱的钥匙 )
CloseHandle( hBoxKey ) ;
}
-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: