Netty如何使用线程池?

2024-03-02

您能解释一下 Netty 如何使用线程池来工作吗?我是否理解正确,有两种线程池:老板和工人。 Boss 用来做 I/O,worker 用来调用用户回调(messageReceived)来处理数据?


这是来自 NioServerSocketChannelFactory 文档

一个 ServerSocketChannelFactory 其中 创建一个基于NIO的服务器端 服务器套接字通道。它利用了 非阻塞 I/O 模式 与 NIO 一起推出,服务众多 并发连接数 有效率的。

线程如何工作
有两种类型 a 中的线程数 NioServerSocketChannelFactory;一个是 boss线程,另一个是worker线程 线。

老板螺纹
每个界限 ServerSocketChannel有自己的老大 线。例如,如果您打开了两个 服务器端口,例如 80 和 443,您 将有两个老板线程。老板 线程接受传入连接 直到端口解除绑定。一旦 连接被成功接受, boss线程通过了接受的 通向工作线程之一的通道 NioServerSocketChannelFactory 管理。

工作线程
一 NioServerSocketChannelFactory 可以有 一个或多个工作线程。一位工人 线程执行非阻塞读取和 为一个或多个通道写入 非阻塞模式。

在 Nio 模型中,boss Thread 负责所有有界套接字(listen socket),workerThread 负责 Accepted-socket(包括 IO 和调用事件方法,例如消息 Received)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Netty如何使用线程池? 的相关文章

随机推荐

  • 如何手动安装旧的 cygwin 软件包?

    我正在进行的一个项目需要旧版本的 SLAPD LDAP 服务器 并且必须在 Windows 上运行 因此我使用 cygwin 软件包 我在这里找到了我需要2 2 x的slapd版本的二进制包 http www mirrorservice o
  • 使用 igraph 绘制网络

    我想从相关矩阵创建一个网络并绘制它 我正在尝试为此使用 igraph 这是我的数据的一个子集 mydata Taxon CD1 CD2 Actinomycetaceae g Actinomyces 0 072998825 0 0313994
  • MKMapView 缩放到 viewDidLoad 上的用户位置?

    我试图在视图加载后将地图缩放到用户的当前位置 但出现错误 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 无效区域 当视图加载时 有人可以帮忙吗 Cheers void viewDidLoad
  • Chrome 插件 - 上下文菜单插入文本

    我试图弄清楚如何在右键单击输入字段 可编辑 时插入预定义字符串 通常我会使用文档通过 id 获取元素 但是 由于我无法确定用户单击的元素 在任何网站上我该如何执行此操作 到目前为止我有我的清单文件 permissions contextMe
  • 如何检测 PHP JIT 是否启用

    检测 PHP 是否使用 JIT 编译并且从运行脚本启用 JIT 的最简单方法是什么 您可以通过调用直接查询opcache设置opcache get status https www php net manual en function op
  • py2exe无法从其他目录导入模块

    我将 python 源代码与 py2exe 捆绑在一起 目录结构如下 some Mod py some dir another dir some Mod py 在后者 some dir another dir some Mod py 中 我
  • 如何将Android模拟器连接回ADB?

    当我通过在 Eclipse 中点击 调试 启动模拟器后 经过一定时间后它会与 ADB 断开连接 但模拟器保持打开状态 它反应灵敏 我可以导航和启动应用程序 如何将模拟器连接回 ADB 以便能够从 Eclipse 进行调试 当前的解决方法是终
  • 允许程序通过 Windows 防火墙

    I am new to windows Firewall I have seen this dialog and unable to relate the meaning of it 上面的对话框说的是 允许 python 在这些网络上进行
  • RSS 源中的有效 HTML 标签是什么?

    我环顾四周 似乎没有任何关于 RSS 中 允许 HTML 标签的标准 你可以放入任何内容 But我测试的读者只允许某些事情 在我最初的测试中 看起来像 这样的简单样式标签就可以了 像 这样的内联样式似乎也有效 但是 和 22359 3711
  • CSS 位置元素“固定”在滚动容器内

    我想知道是否有人找到了解决方案 我正在寻找一种将元素附加到滚动容器顶部的解决方案 HTML div class container div class header title div div class element div about
  • CSS响应中心部门

    我想将一些有背景图像的 div 居中 该 div 的响应存在问题 因为如果我将宽度设置为 80 高度设置为 80 则背景图像不会位于中心 我尝试了一切 但图片不能只站在中心 如果浏览器更小或更大 这是一个非常大的问题 所以如果你看图片 我想
  • R Shiny:从 Excel 复制单元格并将其粘贴到 Shiny 应用程序中,然后使用它们创建数据表

    我正在开发一个 R Shiny 应用程序 我需要开发以下功能 我需要从 Excel 中复制单元格行 开始时一次一列 然后使用 selectizeInput textInput 或 textAreaInput 将它们粘贴到 Shiny 中 数
  • 将 STL 容器 转换为容器

    我正在寻找一种方法来制定具有以下内容的课程 使用具有最大 常量 的指针的 STL 容器的接口 但它会在内部改变所指向的对象 与非常量模拟相比 没有额外的运行时开销 理想情况下 与非常量版本相比 该解决方案不会编译为额外的代码 因为常量 非常
  • 有条件禁用/重新启用 jQuery 单击事件

    我在禁用和重新启用链接上的点击事件时遇到问题 设置为一行 4 列 每列包含一个链接和隐藏内容框 单击链接时 它会展开该行并显示特定于该列的内容框 单击链接并展开行后 所有其他链接都会淡出 然后 您可以重新单击打开的链接以关闭该行并取消淡入淡
  • 如何使用 NDK 17 为 64 位 Android 构建 OpenSSL 1.1.1

    无法为 64 位 Android 构建 OpenSSL 以下是我已采取的步骤 下载了setenv android sh from https wiki openssl org images 7 70 Setenv android sh ht
  • 使用 lubridate 进行矢量化时区转换

    我有一个数据框 其中包含一列日期时间字符串 library tidyverse library lubridate testdf data frame mytz c Australia Sydney Australia Adelaide A
  • 从文本文件中读取并将其加载到 matlab 中的矩阵中[重复]

    这个问题在这里已经有答案了 我有一个名为坐标 txt 的文本文件 格式如下 0 0 0 0 95 0 32 0 02 1 02 0 26 0 96 0 73 0 6 0 52 0 77 0 6 0 71 0 28 0 0 95 0 14 0
  • N个矩形的并集周长

    我想知道解决这个问题的有效方法 给定N个矩形 并给出左上角和右下角 请求N个矩形的并集周长 我只有O N 2 算法太慢 所以请寻找更高效的算法 您可以假设坐标值为正整数且小于 100000 EDIT For example in this
  • simpleXML 根据属性获取节点子节点[重复]

    这个问题在这里已经有答案了 我正在尝试解析我通过其属性之一引用的节点的值 但我不确定语法 XML
  • Netty如何使用线程池?

    您能解释一下 Netty 如何使用线程池来工作吗 我是否理解正确 有两种线程池 老板和工人 Boss 用来做 I O worker 用来调用用户回调 messageReceived 来处理数据 这是来自 NioServerSocketCha