• 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-29

    随机文章:

    delete this 2007-11-29
    内嵌类 2007-01-07
    c++ project 2007-01-04
    3 隐藏实现 2006-12-29

    收藏到:Del.icio.us




    评论

  • 如老大的自我评价,上来一看,果然是代码多多啊,呵呵!我不太懂编程代码,但是从代码中看出的是老大依然还是那么爱学,坚持不懈,很是佩服你啊!