news 2026/10/1 16:55:28

【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/9/27 16:22:38

5分钟部署Whisper语音识别:零基础搭建多语言转录服务

5分钟部署Whisper语音识别:零基础搭建多语言转录服务 引言:语音识别原来这么简单 你有没有遇到过这样的场景?会议录音需要整理成文字,外语视频需要翻译字幕,或者想给音频内容添加文字说明。传统方法要么手动打字费时…

作者头像 李华
网站建设 2026/9/28 14:10:39

VMD-SE-BiLSTM+Transformer多变量时序预测,MATLAB代码

一、研究背景 该模型针对复杂非线性时间序列预测问题,特别是具有多尺度、非平稳特性的时序数据。传统单一模型难以同时捕捉时序数据中的低频趋势和高频波动特征,因此采用分解-重构-混合建模 的策略,结合信号处理与深度学习技术提升预测精度。…

作者头像 李华
网站建设 2026/9/30 16:59:24

局域网中两台win电脑传输文件

文章目录1.方案一:Python 一行命令 HTTP 服务 (最接近 Linux 体验)1. 在发送方电脑 A 上操作2. 在接收方电脑 B 上操作2.方案二:Windows 共享文件夹 (适合频繁传输)3. Linux电脑向Win电脑传输文件总结✨✨✨学习的道路很枯燥,希望我们能并肩走…

作者头像 李华
网站建设 2026/9/30 14:35:17

Flink运行架构深度解析:从核心组件到实战提交

一、Flink运行架构概述Flink作为一个分布式流式计算引擎,其运行架构主要围绕 JobManager 和 TaskManager 两大核心组件展开。1. JobManager(Master)负责协调分布式任务的执行,包括任务调度、资源申请、检查点协调和故障恢复等。一…

作者头像 李华
网站建设 2026/9/27 17:21:14

如何选择高安全性CDN服务?2026年五大厂商深度横评指南

在数字化时代,CDN 作为业务内容分发的核心基础设施,其安全性直接决定了企业数据传输与业务运营的稳定性,选择一家高安全性的 CDN 服务公司成为企业数字化布局的关键。本文从合规资质、传输加密、访问控制、运维与服务四大核心维度&#xff0c…

作者头像 李华
网站建设 2026/9/30 17:10:15

数位差与数值和的构造

求解代码public static void main(String[] args) throws IOException {BufferedReader br new BufferedReader(new InputStreamReader(System.in));StringTokenizer in new StringTokenizer(br.readLine());PrintWriter out new PrintWriter(new OutputStreamWriter(System…

作者头像 李华