【问题标题】:Netty multithreading working group doesn't workNetty 多线程工作组不起作用
【发布时间】:2020-10-06 13:53:44
【问题描述】:

基于文档https://netty.io/4.1/api/io/netty/channel/ChannelPipeline.html:

// 告诉管道运行 MyBusinessLogicHandler 的事件处理程序 methods
// 在与 I/O 线程不同的线程中,以便 I/O 线程未被阻塞
// 一个耗时的任务。
// 如果你的业务逻辑是完全异步的或者非常完成的 很快,你不需要
// 需要指定一个组。
pipeline.addLast(group, "handler", new MyBusinessLogicHandler());

这应该为处理程序提供多线程。但实际上并没有,请查看实现的示例:https://github.com/oleg-sta/NettyExample/blob/master/src/main/java/com/example/netty/Main.java 本例中,HelloServerHandler 是一一接收消息,为什么workerGroup 不起作用?

【问题讨论】:

标签: multithreading netty


【解决方案1】:

这样做的原因是大多数协议都需要某种排序,如果我们只是为每条消息选择一个新线程,则无法保证这种排序。也就是说,在向管道添加处理程序时,您可以使用 UnorderedThreadPoolEventExecutor 归档您想要的内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多