说道netty的线程模型,我们第一反应就是经典的Reactor线程模型,下面我们就来一起探讨一下三种经典的Reactor线程模型:
这里我们需要理解的一点是Reactor线程模型是基于同步非阻塞IO实现的。对于异步非阻塞IO的实现是Proactor模型。
本文主要包括
(1)Reactor单线程模型(2)Reactor多线程模型
(3)主从Reactor多线程模型
(4)netty的多线程模型
1.Reactor单线程模型
Reactor单线程模型就是指所有的IO操作都在同一个NIO线程上面完成的,也就是IO处理线程是单线程的。NIO线程的职责是:
(1)作为NIO服务端,接收客户端的TCP连接;
(2)作为NIO客户端,向服务端发起TCP连接;
(3)读取通信对端的请求或则应答消息;
(4)向通信对端发送消息请求或则应答消息。
Reactor单线程模型图如下所示: