CMutex

CObject
 └CSyncObject
    └CMutex

CMutex类的对象代表“哑程(mutex)”——它为一个同步对象,允许某线程共同访问同一资源。在仅仅一个线程被允许用于修改数据或其它被控制的资源时,哑程将变得非常有用。例如,给链接的列表增添一个结点就是只允许一个线程的过程。通过使用CMutex对象来控制链接列表,此时只有一个线程能够获得列表的访问权。
若要使用CMutex 对象,首先要构造一个所需的CMutex 对象。然后指定希望等待的哑程的名称,那么应用最初就将拥有它。可以在构造函数返回时,访问哑程。当你已经访问了被控制的资源后,再调用CSyncObject::Unlock函数。
另外一种使用CMutex 对象的方法就是一个CMutex类型的变量,将其作为你希望控制类的数据成员。在被控制对象的构造过程中,若哑程最初拥有了哑程的名称或期待的安全属性,那么就调用CMutex数据成员指定的构造函数,以这种方式访问由CMutex 对象控制的资源,首先要在资源访问的成员函数中创建CSingleLock类型或CMultiLock类型的变量。然后调用封锁对象的Lock成员函数(例如, CSingleLock::Lock)。这样,你的线程要么就获得资源的访问权,以等待将要释放的资源,并获取访问权,要么就等待将要释放的资源,当超时后,返回失败。在任何一种情况下,都可以在线程安全的模式下访问资源。若要释放这些资源,使用封锁对象的Unlock成员函数(例如, CSingleLock::Unlock),或允许封锁对象越界。如果要了解有关使用CMutex 对象的更多信息,请参阅联机文档“Visual C++程序员指南”中的“多线程:如何使用同步类”。
#include <afxmt.h>


CMutex类的成员

构造函数
CMutex构造一个CMutex对象