事件驱动与流程驱动

Posted 菜鸟飞飞飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事件驱动与流程驱动相关的知识,希望对你有一定的参考价值。

1:流程驱动:类似 一般就是主动轮询 在干活中还要分心 主动去找活干  这样有空余的时间也完全浪费掉了

2:事件驱动:类似  比如公司有一个oa系统 你干完活的时候只需要看下oa系统有没分配给你活 没有可以干自己的事  不用担心还有其他事没干完

3者对比

采用警觉式者主动去轮询 ( polling),行为取决于自身的观察判断,是流程驱动 的,符合常规的流程驱动式编程 ( Flow-Driven Programming)的模式。采用托付式者被动等通知 (notification),行为取决于外来的突发事件,是事件驱动 的,符合事件驱动式编程 ( Event-Driven Programming,简称 EDP)的模式。

 

事件驱动过程:事件源  事件管理器 事件处理器   由事件源发表事件  由事件管理器来决定分派事件给事件处理器来处理(只有在高层注册过的事件才会分派)

 

一般架构上都是分成 然后高层调用底层  底层不依赖高层 这样保证了代码的扩展性和重用性

但是事件驱动是由回调函数来完成 高层绑定事件 由底层来调用  这样实现局部的控制反转 由底层来决定什么时候调用回掉方法 这样高层只需要交代找我的时候需要做啥 就什么都不用管了等待底层调用就行  如果回调函数在调用的下层方法里立即执行 就实现了代码上的解耦  如果是异步调用回掉方法 就是实现了时间上的解耦

以上是关于事件驱动与流程驱动的主要内容,如果未能解决你的问题,请参考以下文章

事件驱动模型

Python并发编程-事件驱动模型

事件驱动架构

nginx基于epoll模型事件驱动流程详解

Spring的事件驱动模型

11.python并发入门(part13 了解事件驱动模型))