-
2006-11-29
同步控制 - [C++再学习]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://xingzhesun.blogbus.com/logs/3935064.html
防止死锁的方法就是强迫将资源锁定“all-or-nothing”要不统统获得,要不统统没有。
锁住一个未被拥有的mutex,比锁住一个未被拥有critical section需要花费几乎100被的时间。因为critical section 不需要进入操作系统核心,直接在user mode就可以进程操作。
Mutexes 可以跨进程使用,critical section只能在同一个进程中使用。
CRITICAL_SECTION
InitializeCriticalSection()
EnterCriticalSection()
LeaveCriticalSection()
DeleteCriticalSection()Mutex
CreateMutex()
OpenMutex()
WaitForSingleObject()
WaitForMultipleObjects()
MsgWaitForMultipleObects()
ReleaseMutex()
CloseHandle()一旦没有任何线程拥有Mutex,这mutex便处于激发状态。因此如果没有任何线程拥有那个mutex,waitForsingleObjects()便会成功返回。反过来,当线程拥有MUTEX时,
它便不处于激发状态,如果某个线程正在等待一个未被激发的mutex,它便进入blocking状态。Mutex的用于权并非属于那个产生他的线程,而是那个最后对此mutex进行WaitforsingleObject()并且尚未进行releaseMutex()操作的线程。
随机文章:
delete this 2007-11-29string alloced memory on the heap or stack 2007-02-02内嵌类 2007-01-07c++ project 2007-01-043 隐藏实现 2006-12-29
收藏到:Del.icio.us








评论