txftxf
驱动牛犊
驱动牛犊
  • 注册日期2001-07-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3968回复:10

请问 Vxd是多线程的吗?

楼主#
更多 发布于:2001-08-28 15:18
我的意思是,当Vxd正在处理一个消息时,新到来的消息是不是必须等待,还是由VXD派生新的Vxd,来处理新消息?
谢了

最新喜欢:

okincnokincn mtymty
wentao
驱动牛犊
驱动牛犊
  • 注册日期2001-05-25
  • 最后登录2003-12-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-28 16:07
Vxd支持多线程,当Vxd如果不是中断调用时,对线程的处理是完全支持的.当Vxd正在处理一个消息时,新到来的消息必须等待,直到原消息已处理完毕.这与WINDOWS系统的处理是完全一致的.
wentao
txftxf
驱动牛犊
驱动牛犊
  • 注册日期2001-07-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-28 19:55
还是不很明白。
举个例子,假如Vxd在消息A的处理过程中因为Wait信号量C而阻塞,
此时消息B到来(假设Vxd对消息B的处理是Signal信号量C),如果如上所说,Vxd不是派生一个新线程,而是将消息B的处理延迟到A处理结束以后。但由于Vxd阻塞在A的处理过程中,消息B就永远的不到处理机会,Vxd于是就死锁了。这样好像不对吧?
lvyingf
游客
游客
地板#
发布于:2001-08-30 18:27
VXD的线程是由调用它的进程继承过来的,如果是同一个线程不可能产生你说的情况,如果是两个线程同时调用同一个VXD,就有了一个线程的优先极问题,在这种情况下(即当消息A要等待消息B的结果),系统会临时提升线程(消息B)的优先级,从而保证系统正常工作。
txftxf
驱动牛犊
驱动牛犊
  • 注册日期2001-07-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-08-30 20:01
谢谢你的回答。
我昨天已经做过测试了,确实是这么回事。
好像对于不同的消息,VXD都会派生线程来进行处理。只是最好不要在处理同步IO请求时进行等待,会死机的,呵呵
lvyingf
游客
游客
5楼#
发布于:2001-08-30 20:56
老兄,把你的10分给我好吗
lu0
lu0
论坛版主
论坛版主
  • 注册日期2001-06-10
  • 最后登录2016-04-05
  • 粉丝2
  • 关注0
  • 积分-6311分
  • 威望21111点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-09-04 10:39
VXD本身仅有限支持多线程。 线程不是随意被切换的。
共有2个调度器能决定谁被调度。
1.VMM的PRIMARY SCHEDULE。 他会每20ms评估线程优先并且当情况允许时切换线程。
2.KERNEL32有个线程调度器。 他检查WIN32运行状态, 同样能够决定哪个线程被调度。
只有当2个调度器都同意时线程才会被切换。
通常在VXD里尝试改变线程调度很容易导致死锁。 所以尽量不要在RING0干这些活。
Regards, Lu Lin Webmaster of Inside Programming http://www.lu0s1.com
txftxf
驱动牛犊
驱动牛犊
  • 注册日期2001-07-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-09-05 20:03
这么急呀?!呵呵
这样吧,一人一半好了。^-^
txftxf
驱动牛犊
驱动牛犊
  • 注册日期2001-07-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-09-05 20:08
怎么找不到给分菜单呢?奇怪!!!
lvyingf
游客
游客
9楼#
发布于:2001-09-06 15:43
[QUOTE]原本由 txftxf 发表
[B]这么急呀?!呵呵
这样吧,一人一半好了。^-^ [/B][/QUOTE]

开个玩笑罢了
txftxf
驱动牛犊
驱动牛犊
  • 注册日期2001-07-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-09-08 20:05
但我还是找不到给分菜单?真菜呀
游客

返回顶部