我研究了中断与循环轮询,并了解了不必等待轮询的中断的优点。轮询在我看来就像事件驱动编程或者至少类似于监听器,轮询的作用实际上就像听输入或输出一样。您是否同意或者我是否误解了轮询(周期性收听)和事件驱动编程(也听所谓的听众)之间的任何重要区别?
答案 0 :(得分:10)
相反,完全相反的中断驱动编程几乎就是事件驱动编程的硬件级别。中断驱动代码和事件驱动代码在运行代码之前都会等待事件,而轮询将尝试查询事件是否实际存在。
但是,应该注意,中断和事件驱动的程序通常使用一种轮询形式在较低级别实现;虽然通常在硬件中,但没有真正的中断或事件驱动系统不涉及某种轮询。在中断的情况下,CPU实际上每个时钟周期轮询中断线,同样使用事件驱动编程,因为重新启动暂停的线程涉及事件源(通常是驱动程序)引发的中断。
你可以说中断和事件驱动编程是一种规范的轮询方式,与实际轮询自己相比具有很多优势。
答案 1 :(得分:1)
轮询和中断处理是了解事件的两种方法。这两者都与事件驱动编程相矛盾,事件驱动编程是围绕处理传入事件构建程序的。