当前位置: 首页 > 知识库问答 >
问题:

在Netty 4中可以并发读取吗?

袁凌
2023-03-14

从这些注释中:

Netty永远不会同时调用ChannelHandler的方法,除非ChannelHandler带有@Sharable注释。这与处理程序方法的类型无关—入站、出站或生命周期事件处理程序方法。

我对此没有异议。但是,我的问题是,在管道的不同阶段,是否可能同时从同一通道读取/处理两条不同的消息。

例如,考虑下面的管道(<代码> ChannelInboundHandler < /代码> S):

+-----------+
| Handler 2 |
+-----------+
      ^
      |
+-----------+
| Handler 1 |
+-----------+
      ^
      |
+-----------+
| I/O read  |
+-----------+

我知道最多只有一个线程可以从Handler 1调用方法,除非它是Sharable。但是,一个线程可以在处理程序2中处理消息,而另一个线程可以在处理程序1中处理相同通道的消息吗?还是只有当当前消息到达管道末端时才选择通道?

共有1个答案

毛景曜
2023-03-14

只有当您将其中一个ChannelHandler添加到传入了EventExecutorGroup的管道中时,才可以这样做。如果你不使用一个,一切都将由事件循环和一个线程来处理。

 类似资料:
  • 我正在尝试从Java应用程序的Google Sheets API。我已经访问了教程中提到的文件,但我无法访问我自己创建的任何文件。 这是我使用的代码: 我在Drive中手动创建了一个电子表格,用字符串填充A1: B,并从URL中复制了id,看起来像“1IeoY5jY3Su86x1uvgc1yJqEU-6dd6FdUKo8Yf5J73k”(不是实际的ID)。 这将生成错误400无法解析范围:类数据!

  • 对不起,如果这个问题是一个迟钝的,但我没有得到一个答案,我正在寻找。 Java docs这样说 通常,对读取器的每个读取请求都会导致对底层字符或字节流的相应读取请求。因此,建议将BufferedReader包装在任何读取()操作可能代价高昂的读取器周围,例如FileReaders>和InputStreamReaders。例如, 将缓冲来自指定文件的输入。如果不进行缓冲,每次调用read()或rea

  • 我的项目有一个依赖项,它需要一个可以由@value注释读取的set a properties对象: 为了在JavaConfig中实现这一点,我使用了以下内容: 是否可以将我的PropertiesFactoryBean配置为从Application.yml读取值?如果没有,是否有更简单的方法来使用JavaConfig配置属性?

  • dubbo 2.5.6版本新增了对netty4通信模块的支持,启用方式如下 provider端: <dubbo:protocol server="netty4" /> 或 <dubbo:provider server="netty4" /> consumer端: <dubbo:consumer client="netty4" /> 注意 provider端如需不同的协议使用不同的通信层框架,

  • 问题内容: 我需要等待,直到创建了一个文件,然后将其读入。我有以下代码,但请确保它不起作用: 有什么想法吗? 问题答案: 一个简单的实现可以是: 每次检查后,您都需要等待一段时间,然后在路径存在时读取文件。如果从未创建该文件,则可以停止该脚本,但有例外。您还应该检查该路径是否位于该文件之后,以避免某些不必要的异常。

  • 我正在做一些研究,我正在读这一页https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html 上面写着 Amazon S3会自动扩展到高请求率。例如,您的应用程序可以在存储桶中的每个前缀每秒至少实现3,500个PUT/POST/DELETE和5,500个GET请求。存储桶中的前缀数量没有限