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如何使用线程池? 的相关文章

  • Java Swing BoxLayout 忽略 AlignmentX

    在下面的代码中 通过调用setAlignmentX with Component LEFT ALIGNMENT我希望在居中的滑块上获得左对齐的标签 由于某种原因 标签也居中 似乎与传递给 setAlignmentX 的值无关 我必须向 se
  • 无论线程如何,对象是否总是能看到其最新的内部状态?

    假设我有一个带有简单整数计数变量的可运行对象 每次可运行对象运行时该变量都会递增 该对象的一个 实例被提交以在计划的执行程序服务中定期运行 class Counter implements Runnable private int coun
  • Selenium:将 Internet Explorer 中的文件下载到指定文件夹,无需直接链接,无需 Windows 窗体,无需 AutoIt 或 Robot

    我经常遇到一个问题 如何在 IE 中下载文件 与 Firefox 的 Chrome 不同 您不能只指定所需的文件夹 所有文件都会下载到该文件夹 您还需要与本机 Windows 表单等进行交互 有多种选项 例如使用 AutoIt 使用键盘命令
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • 如何准确判断 double 是否为整数? [复制]

    这个问题在这里已经有答案了 具体来说 在 Java 中 我如何确定double是一个整数 为了澄清 我想知道如何确定 double 实际上不包含任何分数或小数 我主要关心的是浮点数的性质 我想到的方法 以及我通过谷歌找到的方法 基本上遵循以
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 使用全局变量从内部函数获取空字符串

    请帮助我解决一些小问题 我确信你能做到 D 我试图在 firestore 文档 user cases information 上设置一个字段 其中包含一个字段 case number 首先我声明这个全局变量 private String c
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 未注入带有 JPA2 的 Apache Ignite 2.7 IgniteRepository

    使用在 Web 上建立的 guildes 我使用 Spring Data JPA 2 应用程序制作了简单的 Spring Boot 2 仅在 2 7 版本中才向 Apache Ignite 添加了 Spring Boot JPA 2 支持
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • 如何自动转换十六进制代码以将其用作 Java 中的 byte[]?

    我这里有很多十六进制代码 我想将它们放入 Java 中 而不需要向每个实体附加 0x 喜欢 0102FFAB 和我必须执行以下操作 byte test 0x01 0x02 0xFF 0xAB 我有很多很长的十六进制代码 有什么办法可以自动做
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • 避免 @Secured 注释的重复值

    我正在尝试使用以下方法来保护我的服务方法 Secured如下 public interface IUserService Secured ROLE ROLE1 ROLE ROLE2 ResponseEntity saveUser Creat
  • 在Java中如何将字节数组转换为十六进制?

    我有一个字节数组 我希望该数组的每个字节字符串转换为其相应的十六进制值 Java中有没有将字节数组转换为十六进制的函数 byte bytes 1 0 1 2 3 StringBuilder sb new StringBuilder for
  • Time.valueOf 方法返回错误值

    我使用 Time valueOf 方法将字符串 09 00 00 转换为 Time 对象 如下所示 Time valueOf LocalTime parse 09 00 00 当我调用 getTime 来显示我得到的值时 28800000
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • com.sun.xml.ws.message.saaj.SAAJHeader 无法转换为 com.sun.xml.ws.security.opt.impl.outgoing.SecurityHeader

    我正在尝试访问第三方 Web 服务 该服务要求我创建一个传递时间信息 用户名和密码的安全标头 我在网上搜索了可行的示例 并尝试了多种方法 我正在尝试使用 Java 6 中内置的内容来做到这一点 我不确定我做错了什么 从 WSDL 生成 We
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF

随机推荐

  • 如何手动安装旧的 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