构建一个基于事件分发驱动的EventLoop线程模型

Java112

在之前的文章中我们详细介绍过Netty中的NioEventLoop,NioEventLoop从本质上讲是一个事件循环执行器,每个NioEventLoop都会绑定一个对应的线程通过一个 for(;;)循环来处理事件消息。今天我们就借鉴NioEventLoop,并加入消息分发策略构建一个基础的Eventloop线程模型。

整个线程模型可以划分为三部分

事件监听及分发(Event): 监听消息事件并通过分发器分发;

分发器(Dispatch):将消息按照分发策略分发到对应的事件循环器中;

事件循环器 (EventLoop) :绑定一个对应的线程与消息队列,循环处理消息;

模型图如下所示

构建一个基于事件分发驱动的EventLoop线程模型

事件监听器把监听到的事件交给分发器进行分发,分发器根据一定的分发策略把消息事件分发至对应的Eventloop的消息事件队列中,每个EventLoop内部会启动一个线程轮询队列中的消息事件并进行处理;

下面结合代码看下具体实现

一、事件监听及分发

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长