两个以上的线程如何让他们保持互斥?也就是说多个线程中只能按照顺序一个一个访问共享资源。用CreateMutex 和 releaseMutex可以实现吗?

解决方案 »

  1.   

    CMutex m_mutex; 
     
    在线程函数里:m_mutex.Lock();
       // 共享资源
    m_mutex.Unlock();
      

  2.   

    如果是要按照顺序的话,
    m_mutex.Lock(); 
      // 共享资源 
    m_mutex.Unlock(); 
    这样写可能就不可能实现了,因为这样做(一个互斥锁)的结果是虽说能够达到互斥的效果,但却达不到按照顺序一个一个访问共享资源,按顺序访问的话,还需要增加几个信号量来实现了。