Netty中Reactor线程的运行逻辑

Netty中的Reactor线程主要干三件事情:

  • 轮询注册在Reactor上的所有Channel感兴趣的IO就绪事件

  • 处理Channel上的IO就绪事件

  • 执行Netty中的异步任务。

正是这三个部分组成了Reactor的运行框架,那么我们现在来看下这个运行框架具体是怎么运转的~~

这里需要注意的是netty只会自动注册OP_READ事件,而OP_WRITE事件是在当Socket写入缓冲区以满无法继续写入发送数据时由用户自己注册。

这里假设一种极端情况,如果最近的一个定时任务的deadline是在未来很远的一个时间点,这样就会使timeoutMillis的时间非常非常久,那么Reactor岂不是会一直阻塞在Selector上造成 Netty 无法工作?

当Reactor正在Selector上阻塞时,如果此时用户线程向Reactor提交了异步任务,Reactor线程会通过execute方法被唤醒。

Reactor线程唤醒时机

Reactor运行核心逻辑:

Reactor线程运行时结构.png

Reactor工作流程图.png

Reactor分配任务执行时间.png

参考:一文聊透Netty核心引擎Reactor的运转架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/721813.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql8.x安装教程,window版本

mysql8.x安装教程,window版本 1. 安装步骤 1. 安装步骤 下载暗安装包,https://dev.mysql.com/downloads/file/?id528489 双击安装包,然后按照下述步骤操作 选择custom,然后点击next 如图选中,mysql server和mysq…

【一生一芯】chisel学习

香山处理器敏捷开发方法与工具

Autodesk Inventor 机械三维设计软件下载安装,Inventor 专业的三维制图软件

Inventor,它的一大亮点在于能够将三维尺寸、标注以及尺寸公差直接融入三维模型中,使得这些关键信息能够无缝对接下游应用,极大地提升了设计流程中的连贯性和一致性。 谈及Inventor的尺寸公差功能,更是让人赞不绝口。在复杂的设计过…

‘引爆增长·赋能十堰’第一届学习峰会在十堰东方汉宫国际酒店成功举办

‘引爆增长赋能十堰’第一届学习峰会在十堰东方汉宫国际酒店成功举办 2024年6月 17 至18 日,为期两天的“引爆增长赋能十堰”第一届学习交流峰会在湖北十堰东方汉宫国际酒店一号盛大举行,学习峰会现场,来自十堰地区及邻边地市的上百位实体企业…

传统车牌识别

主要参考:https://blog.csdn.net/qq_40784418/article/details/105586644 其它介绍: https://blog.csdn.net/great_yzl/article/details/120127962 https://blog.csdn.net/onepunch_k/article/details/115480904 cv2.matchTemplate https://docs.ope…

《SelectDB 新一代日志存储分析平台解决方案》白皮书重磅发布|立即下载

随着信息技术的飞速进步,企业面临着前所未有的系统复杂性和数据挑战。在此背景下,日志数据成为了企业洞察系统内部状态、监控网络安全以及分析业务动态的宝贵资源,构建高效的日志存储与分析平台至关重要。 作为基于 Apache Doris 打造的现代…

17. 一个I/O项目:构建命令行程序(下)

目录 五、采用测试驱动开发完善库的功能5.1 编写失败测试用例5.2 编写成功测试用例5.3 在run函数中打印搜索到的行 六、添加大小写不敏感功能七、将错误信息输出到标准错误八、附录完整代码 五、采用测试驱动开发完善库的功能 5.1 编写失败测试用例 在lib.rs中写一个简单的se…

JAVAEE之网络原理(2)_传输控制协议(TCP)、概念、格式、确认应答及超时重传机制

前言 在上一节中,我们介绍了 UDP (用户数据报) 的相关知识,在这一节中我们将继续介绍传输层中另一种更为重要的协议。 一、什么是TCP协议? 1.1 TCP 基本概念 TCP协议全称:传输控制协议(TCP,Transmission C…

Vatee万腾平台:创新科技,助力企业腾飞

在全球化竞争日益激烈的今天,企业如何借助科技力量实现转型升级,已成为摆在众多企业家面前的重大课题。Vatee万腾平台凭借其卓越的创新科技和专业的服务能力,成为众多企业实现腾飞的得力助手。 一、创新科技,引领企业前行 Vatee万…

计算机网络实验(9):路由器的基本配置和单臂路由配置

一、 实验名称 路由器的基本配置和单臂路由配置 二、实验目的: (1)路由器的基本配置: 掌握路由器几种常用配置方法; 掌握采用Console线缆配置路由器的方法; 掌握采用Telnet方式配置路由器的方法&#…

Spring事务 和 事务传播机制

这里的 事务 和之前 MySQL的事务 一样,都是表示将⼀组操作封装成⼀个执⾏单元(封装到⼀起),要么全部成功,要么全部失败。 Spring 中事务的实现 1. 编程式事务(手动档)。 package com.example.…

Java线程池基本概念

全局和局部线程池 全局线程池 在Spring框架中,全局线程池如ThreadPoolTaskExecutor通常是作为Spring Bean存在的,它们的生命周期由Spring容器管理。当Spring容器关闭时,这些线程池也会被适当地清理和关闭。因此,开发者通常不需要手…

MCK主机加固在防漏扫中的关键作用

在当今这个信息化飞速发展的时代,网络安全成为了企业不可忽视的重要议题。漏洞扫描,简称漏扫,是一种旨在发现计算机系统、网络或应用程序中潜在安全漏洞的技术手段。通过自动化工具,漏扫能够识别出系统中存在的已知漏洞&#xff0…

调度算法-进程调度算法

发⽣ CPU 调度通常有以下情况: 1. 当进程从运⾏状态转到等待状态;2. 当进程从运⾏状态转到就绪状态;3. 当进程从等待状态转到就绪状态;4. 当进程从运⾏状态转到终⽌状态 常⻅的调度算法: 先来先服务调度算法最短作业…

Airtest初使用

https://airtest.doc.io.netease.com/tutorial/2_Airtest_introduction/ 什么是Airtest Airtest是一款基于Python语言、跨平台的UI自动化测试框架,基于图像识别原理,比较适用于游戏和App。 它的主要特点包括: 跨平台支持:支持A…

打造精致UI界面:字体设计的妙招

字体设计是UI设计的关键模块之一。字体设计是否有效可能直接实现或破坏整个UI界面。那么,界面设计的字体设计有哪些规范呢?如何设计细节字体?本文将解释字体设计规范的可读性、可读性和可用性,并介绍UI界面中的字体设计技巧。 如…

团队管理的三个要点,打造高执行力团队

一、明确目标与责任 明确的目标与责任是团队高效运作的基石。只有当团队成员对目标有清晰的认识,并明确自己的责任时,才能形成强大的合力,推动团队不断前进。 1、目标设定 目标应该具体、可衡量、有挑战性但可实现。项目经理可以与团队成员…

Nginx Proxy 代理测试

目录 https://blog.csdn.net/Lzcsfg/article/details/139781909 一. 实验准备 二. 配置反向代理 三. 配置二层代理 解释流程 一. 实验准备 关闭防火墙和selinux,准备三台同一网段的虚拟机 localhostRoucky_linux9.4192.168.226.20localhostRoucky_linux9.419…

【2024泰迪杯】C 题:竞赛论文的辅助自动评阅 26页及31页2篇完整论文及Python 代码实现

【2024泰迪杯】C 题:竞赛论文的辅助自动评阅 26页及31页完整论文及Python 代码实现 相关链接 【2024泰迪杯】A 题:生产线的故障自动识别与人员配置 Python代码实现 【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码实现 【2…

基于PHP的草莓种植信息管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的草莓种植管理系统 一 介绍 此草莓种植管理系统基于原生PHP开发,数据库mysql,前端采用jquery.js和kindeditor在线HTML编辑器。系统角色分为用户和管理员。 技术栈:phpmysqljquery.jsphpstudyvsco…