事件驱动编程开发是程序员在学习软件编程开发的时候需要重点掌握的一种开发方式,而今天我们就通过案例分析来了解一下,事件驱动编程的概念与优缺点分析。
1、事件驱动编程
事件驱动编程通常只是用一个执行过程,CPU之间不是并发的,在处理多任务的时候,事件驱动编程是使用协作式处理任务,而不是多线程的抢占式。事件驱动简洁易用,只需要注册感兴趣的事件,在回调中设计逻辑就可以了。在调用的过程中,事件循环器(EventLoop)在等待事件的发生,跟着调用处理器。事件处理器不是抢占式的,处理器一般只有很短的生命周期。
2、事件驱动编程的优势
在大部分的应用场景中,事件编程优与多线程编程。
相对与多线程编程来讲,事件驱动编程比较容易,复杂度低,是开发者乐于接受的。
大多数的GUI框架,都是使用事件驱动编程了架构的。每一个事件会绑定一个处理器,这些事件通常是点击按钮,选择菜单,等等。处理器r来实现具体的行为逻辑。
事件驱动经常使用在I/O框架中,可以很好的实现I/O复用。很多高性能的I/O框架都是使用事件驱动模型的,例如:Netty、Mina、Node.js。
易于调试。时间依赖只和事件有关系,而不是内部调度。问题容易暴露。
3、事件驱动编程的劣势
如果处理器占用时间较长,那会阻塞应用程序的响应。
无法通过时间来维护本地状态,因为处理器必须返回。
通常在单CPU环境下,比多线程编程要快,因为没有锁的因素,没有线程切换的损耗。CPU不是并发的,这样的话就不适合用在一些科学计算的应用中。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。