我研究了中断和周期性轮询,并了解了无需等待轮询的中断的优势。在我看来,轮询似乎就像事件驱动编程,或者至少类似于侦听器,而轮询所做的实际上更像是侦听输入或输出。你同意还是我误解了轮询(循环监听)和事件驱动编程(也就是所谓的监听器监听)之间的关键区别?
发布于 2012-11-26 10:50:05
不,恰恰相反,中断驱动编程在硬件层面上几乎就是事件驱动编程。中断驱动的代码和事件驱动的代码都会在运行代码之前等待事件,而轮询将尝试查询事件是否确实存在。
然而,应该注意的是,中断和事件驱动的程序通常是使用轮询的形式在较低级别实现的;没有真正的中断或事件驱动的系统不涉及某种类型的轮询,尽管通常是在硬件中。在中断的情况下,CPU实际上每个时钟周期轮询中断行,事件驱动编程也是如此,因为重新启动暂停的线程涉及由事件源(通常是驱动程序)引发的中断。
您可以说,中断和事件驱动编程是一种经过训练的轮询方式,与实际自己进行轮询相比,它具有很多优势。
发布于 2012-11-26 10:37:09
轮询和中断处理是了解事件的两种方式。两者都不与事件驱动编程相矛盾,事件驱动编程是围绕处理传入事件来构建程序。
https://stackoverflow.com/questions/13557904
复制相似问题