首页
社区
课程
招聘
[求助]键盘鼠标消息被加入队列后,系统是怎样调度线程的??
发表于: 2009-4-26 09:24 4013

[求助]键盘鼠标消息被加入队列后,系统是怎样调度线程的??

2009-4-26 09:24
4013
1)操作系统通过RIT(raw input thread,RIT)等待系统硬件输入队列(system hardware input queue,SHIQ)的消息,一旦鼠标或键盘发生操作,系统就向SHIQ添加一条硬件事件,这时RIT将被唤醒,并从SHIQ中取出这个事件,转换成适当的WM_KEY***、WM_?BUTTON***、WM_MOUSEMOVE等消息添加到适当线程消息队列(VIQ)中,RIT判断适当线程的机制:
  1.对于鼠标消息,RIT只是确定是哪一个窗口在鼠标光标之下。利用这个窗口,RIT调用GetWindowThreadProcessID来确定是哪一个线程建立了这个窗口,那么就把消息发送到这个线程的线程消息队列(VIQ)中。
  2.对于按键消息,在 任何时刻只有一个线程与RIT“连接”,与之相连的这个线程称为前景线程(foreground thread),也就是说RIT将把消息发送到建立当前获得焦点的窗口的线程的线程的线程消息队列(VIQ)中。(这句话有点拗口^_^)。

我的问题是raw input thread线程把硬件输入队列放入适当线程队列后,这个线程挂起,之后系统的下一个时间片分给哪一个线程呢?

是分给这个收到硬件输入消息的线程?还是按照系统自己的调度方试,也就是说不一定给哪一个线程?

请高手指教!!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//