CSemaphore/CMutex/CCriticalSection/CEvent之间有什么区别

gyscs 2002-01-23 08:30:05
我想问一下CSemaphore/CMutex/CCriticalSection/CEvent之间有什么区别。
...全文
156 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gyscs 2002-05-13
  • 打赏
  • 举报
回复
虽然已结贴,但问题还是没清楚,谁告诉我
gyscs 2002-01-23
  • 打赏
  • 举报
回复
换句话说吧:它们四个各在什么情况下使用。
gyscs 2002-01-23
  • 打赏
  • 举报
回复
互斥量与临界区又是什么区别,
事件又是怎样进行同样的啊
cAndCpp 2002-01-23
  • 打赏
  • 举报
回复
看看msdn
eion 2002-01-23
  • 打赏
  • 举报
回复
信号量
互斥量
临界区
事件

信号量为1的就是互斥量
gyscs 2002-01-23
  • 打赏
  • 举报
回复
thanks
wwwsq 2002-01-23
  • 打赏
  • 举报
回复
《Windows核心编程》
xiaobei525 2002-01-23
  • 打赏
  • 举报
回复
关注,我也搞不懂他们是怎么工作的,有人讲讲吗??
最好能给个简单的例子说明一下,
MFC提供了一组同步和同步访问类来解决线程同步问题。其中, 同步对象包括:CSyncObject、CSemaphore、CMutex,CCriticalSection和CEvent; 同步访问对象包括:CMultiLock和CSingleLock。同步类用于访问资源时保证资源的整体性。其中CSyncObject是其他四个同步类的基类,不直接使用。信号同步类CSemaphore通常用于当一个应用程序中同时有多个线程访问一个资源的情况(例如,应用程序允许对同一个Document有多个View);事件同步类CEvent通常用于在应用程序访问资源之前应用程序必须等待的情况(比如,在数据写进一个文件之前数据必须从通信端口得到);互斥同步类CMutex和临界区同步类CCriticalSection都是用于保证一个资源一次只能有一个线程访问,二者的不同之处在于前者允许有多个应用程序使用该资源,例如,该资源在一个DLL当中,而后者则不允许对同一个资源的访问超出进程的范畴,而且使用临界区的方式效率比较高。同步访问类用于获得对这些控制资源的访问。CMultiLock和CSingleLock的区别仅在于是需要控制访问多个还是单个资源对象。 信号量对象的构造函数: CSemaphore( LONG lInitialCount = 1, LONG lMaxCount = 1, LPCTSTR pstrName = NULL, LPSECURITY_ATTRIBUTES lpsaAttributes = NULL ); 单锁的构造函数: explicit CSingleLock( CSyncObject* pObject, BOOL bInitialLock = FALSE ); 多锁的构造函数: CMultiLock( CSyncObject* ppObjects[ ], DWORD dwCount, BOOL bInitialLock = FALSE );

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧