其他分享
首页 > 其他分享> > 线程同步 -事件Event、临界区对象CriticalSection

线程同步 -事件Event、临界区对象CriticalSection

作者:互联网

事件Event:
基本函数:
全局对象:HANDLE g_hEvent
创建事件对象:g_hEvent=CreateEvent(NULL,FALSE,FALSE,NULL)
重置状态为无信号:ResetEvent(g_hEvent)
设置状态为有信号:SetEvent(g_hEvent)
说明:
有信号转为无信号状态人为重置不可以控,最好设为自动完成,可以避免多个线程请求到对象;
只有一个实例运行:可以通过创建命名的事件对象,通过ERROR_ALREADY_EXISTS==GetLastError()完成;

关键代码段/临界区对象CriticalSection
全局对象:CRITICAL_SECTION g_cs
初始化:InitializeCriticalSection(&g_cs)
申请所有权:EnterCriticalSection(&g_cs)
释放所有权:LeaveCriticalSection(&g_cs)
清理:DeleteCriticalSection(&g_cs)
死锁:两个临界区对象可以实现死锁:两个线程都在没有释放自己拥有的对象时,申请自己没有的临界区对象;

标签:hEvent,对象,死锁,临界,线程,cs,Event,CriticalSection
来源: https://www.cnblogs.com/wllwqdeai/p/11317786.html