Reactor的事件处理机制
发布时间:2020-12-15 04:55:58 所属栏目:百科 来源:网络整理
导读:首先来回想一下普通函数调用的机制:程序调用某函数?函数执行,程序等待?函数将 结果和控制权返回给程序?程序继续处理。 Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调用的不同之处在于:应用 程序不是主动的调用某个API完成处理,而是恰恰相反,
首先来回想一下普通函数调用的机制:程序调用某函数?函数执行,程序等待?函数将
结果和控制权返回给程序?程序继续处理。 Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调用的不同之处在于:应用 程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应 用程序需要提供相应的接口并注册到Reactor上,如果相应的事件发生,Reactor将主动调用 应用程序注册的接口,这些接口又称为“回调函数”。使用Libevent也是向Libevent框架注 册相应的事件和回调函数;当这些事件发生时,Libevent会调用这些回调函数处理相应的事 件(I/O读写、定时和信号)。 用“好莱坞原则”来形容Reactor再合适不过了:不要打电话给我们,我们会打电话通 知你。 举个例子:你去应聘某xx公司,面试结束后。 “普通函数调用机制”公司HR比较懒,不会记你的联系方式,那怎么办呢,你只能面 试完后自己打电话去问结果;有没有被录取啊,还是被据了; “Reactor”公司HR就记下了你的联系方式,结果出来后会主动打电话通知你:有没有 被录取啊,还是被据了;你不用自己打电话去问结果,事实上也不能,你没有HR的留联系 方式。 但是好像还不是很明白!!!!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |