VC多线程编程详解(4)
前面我们介绍了Win32 API提供的几种有关线程同步的对象,在MFC类库中对这几个对象进行了类封装,它们有一个共同的基类CSyncObject,它们的对应关系为: Semaphore对应CSemaphore、Mutex对应CMutex、Event对应CEvent、CriticalSection对应CCriticalSection。另外,MFC对两个等待函数也进行了封装,即CSingleLock和CMultiLock。因四个对象用法相似,在这里就以CMutex为例进行说明:
创建一个CMutex对象:
或
当各线程要访问共享资源时使用下面代码:
sl.Lock();
if(sl.IsLocked())
//对共享资源进行操作...
sl.Unlock();
四、结束语
如果用户的应用程序需要多个任务同时进行相应的处理,则使用多线程是较理想的选择。这里,提醒大家注意的是在多线程编程时要特别小心处理资源共享问题以及多线程调试问题。
希望本文所述对大家的VC程序设计有所帮助。