17
A
回答
31
在低级别,OS内核“知道”什么时候发生,因为有问题的设备向CPU发送硬件中断。
因此,当一个网络数据包到达时,网络控制器会发送一个中断,并且OS内核会根据情况作出响应。
在程序层面上,它的工作原理完全不同 - 大多数应用程序运行一个“事件循环”,在这里他们获取一条消息(比如说,一条来自操作系统的消息说“鼠标在你的应用程序的这一点上被点击了“),对此做出相应的操作,然后再听取更多消息。如果没有消息,操作系统会休眠该线程直到它有消息要传递。
1
取决于。
一个事件监听器通常在生成事件的对象上注册。当事件发生时,对象遍历所有注册的侦听器,通知它们事件。例如,查看Java中的AWT/Swing事件模型。
流的OS知道什么时候它得到一个USB
处于较低的水平,我怀疑那是一个硬件interupt(有人纠正我,如果我错了),这是由内核/ USB处理驱动程序。通常有更高层次的系统(例如DBUS)监听此事件,并让事件监听器监听它们。
或MSN如何确切知道您何时收到电子邮件。
我怀疑这是一个简单的例子,每隔x秒轮询邮箱(例如通过POP3)并检查邮件数量(尽管可能是错误的)。
Anon。解释了硬件中断与软件级事件监听之间的差异。
1
看看Interrupts这应该解释硬件如何启动某些“事件”
0
程序,如电子邮件跳棋通常会运行查询他们的电子邮件服务器的每X周期检查新邮件后台服务。还有其他方法可以做到这一点,但对于软件级别的事件,几乎肯定会是这样的。
相关问题
- 1. “滚动”事件侦听器不工作
- 2. XMLHTTPRequest事件侦听器不工作?
- 3. postMessage()事件侦听器不工作
- 4. 如何“范围”事件侦听器?
- 5. 如何简化javascript事件侦听器?
- 6. []如何附加事件侦听器?
- 7. 事件侦听器5
- 8. reactjs事件侦听器window.resize
- 9. ZF3 onRoute事件侦听器
- 10. 蜡染事件侦听器
- 11. 事件侦听器在evently
- 12. 单击事件侦听器和$ postLink单击事件侦听器不协同工作的指令
- 13. 事件侦听器不工作 - 正确的位置或语法?
- 14. ExtJS的6图表图例事件侦听器不工作
- 15. MobileFirst Platform Foundation 7.0事件侦听器工作不正常
- 16. 在网络工作者中注册事件侦听器
- 17. 重写函数表达式事件侦听器不工作
- 18. HTML 5画布滚动事件侦听器不工作
- 19. iframe - body - 替换innerHTML事件侦听器无法正常工作
- 20. 附加的事件侦听器不工作
- 21. .onkeyup空间条不工作的事件侦听器
- 22. 无法获得事件侦听器的工作
- 23. JavaScript函数/事件侦听器无法正常工作
- 24. 如何添加全局动作事件侦听器?
- 25. 浏览器和viewer.container事件侦听器
- 26. 事件是否可以用作事件侦听器?
- 27. 使用Javascript - 事件侦听器的引擎盖下是如何工作的
- 28. 如何让服务在生命周期事件侦听器中工作
- 29. 如何让borderContainer侦听滚动事件?
- 30. 如何侦听模态关闭事件?
+1为了清楚地解释硬件级别的事件监听器和软件级别的事件监听器之间的差异。 – Pete 2010-07-05 21:57:35