请大家讨论下用户模式下线程同步和使用内核对象线程同步的优缺点

ithzhang
博客专家认证
2011-11-24 03:22:53
加精
如题。windows下。为什么内核对象同步会比用户模式下的线程同步开销大呢。书上说内核对象同步会调用函数导致模式发生切换。但是用户模式下也需要调用API啊。不懂。请大家讨论。
...全文
999 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
微达 2012-05-16
  • 打赏
  • 举报
回复
晕,原来是去年的贴子了………
不冷丁 2012-05-14
  • 打赏
  • 举报
回复
顶10楼
mimixi666 2012-05-13
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 的回复:]

晕,原来是去年的贴子了………
[/Quote]
我也晕。。。。哈哈哈。。。
RLib 2012-05-12
  • 打赏
  • 举报
回复
这是谁推荐的
mhslm2 2012-05-12
  • 打赏
  • 举报
回复
怎么理解
Lactoferrin 2012-05-11
  • 打赏
  • 举报
回复
挖坟是一件很有误导性的事
飞天御剑流 2012-05-11
  • 打赏
  • 举报
回复
晕,原来是去年的贴子了………
飞天御剑流 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
如题。windows下。为什么内核对象同步会比用户模式下的线程同步开销大呢。书上说内核对象同步会调用函数导致模式发生切换。但是用户模式下也需要调用API啊。不懂。请大家讨论。
[/Quote]
用户模式的线程切换是运行在ring3的,所以不会发生模式切换。对于x86,一般会放在GDT且DPL=3的存储段中。

内核线程与用户模式线程其实各有优缺点,模式切换只是其一,内核线程能够从多处理器中得益,而用户模式线程只能运行于进程所得到的处理器资源中。
shiter 2012-05-11
  • 打赏
  • 举报
回复
内核,有那么神奇么??
oppo11 2012-05-10
  • 打赏
  • 举报
回复
其实感觉lz想问的是为什么进入内核的代价那么大??好像看windows核心编程说进入内核要花费几百到1000个周期(记得不清楚了)
linyilong3 2012-05-09
  • 打赏
  • 举报
回复
其实感觉lz想问的是为什么进入内核的代价那么大??好像看windows核心编程说进入内核要花费几百到1000个周期(记得不清楚了)
LoveYouSelf 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
《Windows核心编程》
[/Quote]

看来赵总学富五车啊! 我还在看windows程序设计呢! 呵呵! 看到有人都先我一步看windows核心编程了我得赶进度了! 呵呵!
lijianli9 2012-05-09
  • 打赏
  • 举报
回复
API只是寄存器的切换,不代表模式的切换。
小昌 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
用户模式提供了非常好的性能,但有一定局限性和容易陷入死锁
内核模式的唯一缺点就是他们的性能,因为他们都需从用户模式切换到内核模式
[/Quote]
我不太赞同陷入死锁的说法。
CC的糖豆 2012-05-09
  • 打赏
  • 举报
回复
恩呢《Windows核心编程》
赵4老师 2012-05-09
  • 打赏
  • 举报
回复
《Windows核心编程》
hao603324 2012-05-09
  • 打赏
  • 举报
回复
使用内核对象同步调用的API会导致CPU模式发生切换。用户模式下的则不会。
yzmars8 2012-05-09
  • 打赏
  • 举报
回复
使用内核对象同步调用的API会导致CPU模式发生切换。用户模式下的则不会。
hao7228a 2012-05-09
  • 打赏
  • 举报
回复
啊撒地方撒地方
z1058017535 2011-12-02
  • 打赏
  • 举报
回复
顶贴

也不懂

求解答
加载更多回复(5)

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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