当前位置: 首页 > news >正文

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.lryc.cn/news/383601.html

相关文章:

  • liunx 搭建 zookeeper
  • selenium 3中等待方式
  • pytorch笔记:named_parameters
  • uniapp——H5添加支付宝授权登录,报错:系统异常,请联系商家。REDIRECT_URI_ILLEAGAL
  • 群辉NAS使用Kodi影视墙
  • 如何实现HPC数据传输的高效流转,降本增效?
  • redis 定时任务锁 分布式锁
  • 了解支付行业基本专业语
  • 408数据结构-图的应用1-最小生成树 自学知识点整理
  • Ubuntu18.04操作系统使用pip3安装open cv
  • 为什么变量不可以在 switch 语句中声明定义?
  • 手机定位技术全解析:原理、发展与应用
  • 深入探索Kylin的Cube构建:数据魔方的构建之旅
  • web渗透-CSRF漏洞
  • Python数据分析-电信客户流量预测与分析
  • 动态人物抠图换背景 MediaPipe
  • Vue3 vite使用postcss-px-to-viewport(适配vant)
  • MCU复位时GPIO是什么状态?
  • 领先GPT-4o:Anthropic 推出新一代模型 Claude 3.5 Sonnet|TodayAI
  • 使用AES,前端加密,后端解密,spring工具类了
  • 通过Spring-Data-Redis操作Redis
  • 自动驾驶ADAS
  • Python+Pytest+Allure+Yaml接口自动化测试框架详解
  • python turtle 001画两只小狗
  • 『亚马逊云科技产品测评』程序员最值得拥有的第一台专属服务器 “亚马逊EC2实例“
  • python 趣味习题_递归函数(炸弹迷宫路径计算)
  • 免费翻译API及使用指南——百度、腾讯
  • 深度测试中的隐藏面消除技术
  • oracle merge的使用
  • 《数字图像处理》实验报告四