news 2026/5/14 4:09:02

【netty】EventLoop

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【netty】EventLoop

eventloop 可以处理channel上 accept、read、write等io事件

1.单线程执行器

2.维护了一个selector

如果传入线程数,则使用传入的线程数

如果没有传入线程数,则获取配置的线程数 与 系统的cpu核数*2 比大小

防。 止存在0线程的情况,所以与1比大小,获取较大值

设定了2个thread,打印的eventLoop就是2个来循环工作

public class TestEventLoop { public static void main(String[] args) { NioEventLoopGroup eventExecutors = new NioEventLoopGroup(2); System.out.println(eventExecutors.next()); System.out.println(eventExecutors.next()); System.out.println(eventExecutors.next()); System.out.println(eventExecutors.next()); } }
Connected to the target VM, address: '127.0.0.1:50255', transport: 'socket' io.netty.channel.nio.NioEventLoop@5e57643e io.netty.channel.nio.NioEventLoop@133e16fd io.netty.channel.nio.NioEventLoop@5e57643e io.netty.channel.nio.NioEventLoop@133e16fd Disconnected from the target VM, address: '127.0.0.1:50255', transport: 'socket'

EventLoopGroup 是一组 EventLoop, Channel 一般会调用 EventLoopGroup 的 register 方法来绑定其中一个 EventLoop, 后续这个 Channel 上的 io 事件都由此 EventLoop 来处理(保证了 io 事件处理时的线程安全)

eventloop :客户端与服务器端建立链接之后,一直是同一个eventloop来操作

问题是channel3是不是也能绑定eventloop1呢?

channel是只能绑定一个eventloop,而eventloop是不是能绑定多个channel呢?

答案:是的,正好利用的是io多路复用

niosocketchannel与nioseversocketchannel的区别是什么,一个client来建立链接了,服务器端这边建立的channel是什么channel

  • NioServerSocketChannel是服务端的 “监听大门”,只处理连接请求,全程只有少数实例;
  • NioSocketChannel是服务端和客户端的 “通信管道”,每个客户端连接对应一个,处理数据读写;
  • 客户端连接建立时,服务端核心动作是:NioServerSocketChannel接收请求 → 新建NioSocketChannel→ 后续通信都用这个NioSocketChannel

我们在添加handler的时候,handler内部要是有比较耗时的nio操作,会影响(为社么会影响,根本原因是什么)

所以这个时候,会引入defaulteventloop去做这个比较耗时的业务

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 4:07:16

GLM-4.7-Flash参数详解:flash-attn2启用条件、量化选项与推理精度权衡

GLM-4.7-Flash参数详解:flash-attn2启用条件、量化选项与推理精度权衡 1. 模型基础认知:不只是“更快的GLM-4” 你可能已经听说过GLM-4系列,但GLM-4.7-Flash不是简单的小版本迭代。它是一次面向实际部署场景的深度重构——目标很明确&#…

作者头像 李华
网站建设 2026/5/13 11:36:51

GLM-4-9B-Chat-1M代码补全:vLLM支持的IDE插件开发

GLM-4-9B-Chat-1M代码补全:vLLM支持的IDE插件开发 1. 引言 作为一名长期在AI和智能硬件领域工作的工程师,我经常需要处理复杂的代码项目。最近在开发一个大型Python项目时,遇到了一个典型问题:当代码文件超过几千行后&#xff0…

作者头像 李华
网站建设 2026/5/11 13:16:42

【MySQL】SELECT 优化

文章目录WHERE 条件优化范围优化单部索引范围访问多部索引范围访问索引合并优化三个概念索引下推 (ICP) 优化辨析 IPC 和索引合并和 BTREE 索引外连接优化ORDER BY 优化使用索引进行 order byGROUP BY 优化为什么聚合函数中使用索引列更高效函数调用优化总结避免索引使用不当加…

作者头像 李华