6

我研究了中断与循环轮询,并了解了不必等待轮询的中断的优点。在我看来,轮询就像事件驱动编程,或者至少类似于监听器,而轮询的作用实际上很像监听输入或输出。您同意还是我误解了轮询(循环侦听)和事件驱动编程(也与所谓的侦听器一起侦听)之间的任何关键区别?

4

2 回答 2

14

不,恰恰相反,中断驱动编程几乎就是硬件级别的事件驱动编程。中断驱动代码和事件驱动代码都在运行代码之前等待事件,而轮询将尝试查询事件是否实际存在。

但是需要注意的是,中断驱动和事件驱动的程序一般都是在底层使用轮询的形式实现的;没有真正的中断或事件驱动系统不涉及某种轮询,尽管通常在硬件中。在中断的情况下,CPU 实际上每个时钟周期都会轮询中断线,事件驱动编程也是如此,因为重新启动暂停的线程涉及由事件源(通常是驱动程序)引发的中断。

可以说,中断和事件驱动编程是一种严格的轮询方式,与实际进行轮询相比,它具有很多优势。

于 2012-11-26T02:50:05.157 回答
2

轮询和中断处理是了解事件的两种方法。两者都不与事件驱动编程相矛盾,事件驱动编程是围绕处理传入事件构建程序。

于 2012-11-26T02:37:08.543 回答