存档

文章标签 ‘消息通知’

再谈“事件驱动”

2011年10月16日 1 条评论

之前也写过一些关于事件驱动模型的文章,事隔一年多,再谈起事件驱动,又是一种新的感触,借此文来分享一下,希望能够帮助到在工作、学习中在这方面遇到困惑的朋友。

通常,我们会把轮询和事件驱动拿来做对比,关于它们两者,我在《浅淡“事件驱动”》一文中有举过一个传统邮件和电子邮件的例子,可以帮助大家来理解。轮询的最大缺点是盲目的做,CPU浪费很严重;事件驱动解决了浪费CPU的问题,它只在需要做的时候做,但是在实现上相对要复杂一些。不过总的来说,再复杂的模型,只要理解了它的原理,都阻挡不了聪明的人类使用它的步伐。

工作的两三年的时间里,陆陆续续也做过不少项目,写过不少程序。每次写新的程序,或者是看别人写的程序,都多多少少对会反思自己以前写的程序中使用过的一些模型,想着如何来改进它,使得程序的可扩展性,可复用性等越来越好。通过这样的一些过程,自己也确实发现了变化,也积累了一些经验,总结一下,分享给大家。接下来我将通过一些实例,来介绍事件驱动模型在实现的过程中需要注意的一些点。 阅读全文…

浅淡“事件驱动”

2010年3月2日 没有评论

通常,我们设计一个事件处理模型的程序有两种思路,一种是通过轮询的方式,一种通过事件驱动的方式,事件驱动方式也被称为消息通知方式。下面举个简单收信的例子,来说明两种实现方式的不同:

(1)传统的邮件,邮递员把它放到你家的邮箱里。因为你不知道什么时候有邮件,所以你要经常去检查邮箱,最近到底有没有邮件。这就是所谓的轮询方式,你要时常去检查,有没有发生事件发生,当你检查到有事件发生时,你采取相应措施,处理相关事件。

(2)现代的电子邮件,你不用自己去查看邮箱,如果有新邮件,电脑会给你发消息,提示你有新邮件,然后你去查看邮箱。这就是所谓的事件驱动(消息通知),你不用去关心事件什么时候发生,当有事件发生时,会有人通知你,事件发生了,然后你再采取相应的措施,处理相关事件。 阅读全文…