请教semaphore和criticalsection的本质区别?

xuxichun 2008-04-18 12:47:17
RT,thanks
...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
lz要干嘛?
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
没遇到过这种情况.
rjp203 2008-04-21
  • 打赏
  • 举报
回复
楼上正解,好像critical section的速度会比semaphore快,因为semaphore是内核对象,牵涉到太多
arong1234 2008-04-19
  • 打赏
  • 举报
回复
最直观的区别就是semaphore可以跨进程,而critical section只能在进程内部使用
zoulie 2008-04-19
  • 打赏
  • 举报
回复
详细的比较见WINDOWS 核心编程 第 9章节
ahuisafe 2008-04-18
  • 打赏
  • 举报
回复
criticalsection 是临界区,semaphore是信号量
理论的知识操作系统上有
vckbase上有个非常好的简易例子 你体会体会
http://www.vckbase.com/document/viewdoc/?id=1708
希望有帮助~
paerxiushi 2008-04-18
  • 打赏
  • 举报
回复
semaphore是核心对象,而criticalsection是用户对象,前者分信号与分信号状态,后者是不定义信号状态.前者是核心态,后都是用户态.前者使用CreateSemaphore创建,后者使用InitializeCtriticalSection初始化.前者保证同一时刻可以有多个进程执行同一段代码,但执行的线程的最大数量被限定,后者只允许同一时刻只有一个线程运行同一段代码.

15,471

社区成员

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

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