事件监听器如何工作?

jma*_*erx 18 c c++ events

他们是否反复检查条件并在条件满足时执行.例如,操作系统如何确切地知道何时插入USB设备,或者MSN如何确切地知道您何时收到电子邮件.这是如何运作的?

谢谢

Ano*_*on. 34

在低级别,OS内核"知道"什么时候发生,因为有问题的设备向CPU发送硬件中断.

因此,当网络数据包到达时,网络控制器会发送一个中断,并且OS内核会在适当时做出响应.

在计划层面,它的工作原理完全不同 - 大多数应用程序运行"事件循环",他们获取信息(比如,从OS说,"鼠标点击的是在应用程序中这点"的消息),执行响应的相应动作,然后,听取更多的消息.如果没有消息,操作系统会休眠该线程,直到它有一条要传递的消息.

  • +1用于清楚地解释硬件级别的中断与软件级别的事件监听器之间的区别. (2认同)