netty总结

拥有回忆 提交于 2020-03-18 17:27:31

3 月,跳不动了?>>>

一、Netty

1. Netty的线程模型

netty通过Reactor模型基于多路复用器接收并处理用户请求,这个Reactor模型分为三种:
第一种是Reactor单线程模型,它是使用一个线程来处理客户端的连接和IO处理

第二种是Reactor多线程模型,他使用一个Acceptor线程来处理客户端的连接,并使用线程池来处理Handler的IO操作

第三种是Reactor主从多线程模型,这种模型的Acceptor和Handler处理都是线程池
这里写图片描述

Netty使用的是第二种模型,即使你这样写:(boosGroup表示Acceptor)

EventLoopGroup bossGroup = new NioEventLoopGroup(4); 

但是由于服务器端的 ServerSocketChannel 只绑定到了 bossGroup 中的一个线程, 因此在调用 Java NIO 的 Selector.select 处理客户端的连接请求时, 实际上是在一个线程中的, 所以对只有一个服务的应用来说, bossGroup 设置多个线程是没有什么作用的, 反而还会造成资源浪费.
 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!