请问 Critical Section、Event 和 Mutex 哪个效率比较高?

krfstudio 2005-06-01 07:34:01
RT
...全文
391 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2005-06-02
  • 打赏
  • 举报
回复
临界区用在本进程中线程同步
gooyan 2005-06-02
  • 打赏
  • 举报
回复
我喜欢用Critical Section
fanqing 2005-06-02
  • 打赏
  • 举报
回复
Critical Section
AntonlioX 2005-06-01
  • 打赏
  • 举报
回复
up
Featured 2005-06-01
  • 打赏
  • 举报
回复
CriticalSection只能保护自身。
不同线程中可以 多次 cs.locked();
krfstudio 2005-06-01
  • 打赏
  • 举报
回复
有一点我不明白,既然 Critical Section 底层用的是 Semaphore,那为什么在这同一个页面的前面又写 critical section 比其他几种方式的效率更高?

Event, mutex, and semaphore objects can also be used in a single-process application, but critical section objects provide a slightly faster, more efficient mechanism for mutual-exclusion synchronization (a processor-specific test and set instruction).
krfstudio 2005-06-01
  • 打赏
  • 举报
回复
用 Semaphore 是不是比用 Critical Section 效率更高一些呢?
我查了一下 MSDN,发现在 Critical Section 底层好象就是用的 Semaphore,下面
的文字截自MSDN(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/critical_section_objects.asp)

On multiprocessor systems, if the critical section is unavailable, the calling thread spins dwSpinCount times before performing a wait operation on a semaphore that is associated with the critical section.
krfstudio 2005-06-01
  • 打赏
  • 举报
回复
那 Event 和 Mutex 哪个比较快呢?
interceptor 2005-06-01
  • 打赏
  • 举报
回复
Critical Section不是内核对象,速度最快。其它几种都是内核对象
hsz8250 2005-06-01
  • 打赏
  • 举报
回复
Critical Section是用户级的同步对象,是最快的一种,但是不太灵活!
jerry 2005-06-01
  • 打赏
  • 举报
回复
差不多吧, 可能 Critical Section 好点,也是最常用的

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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