该文档未提供有关可用的不同类型执行程序的任何详细信息.我想要的是拥有一个基于可配置线程池的执行器,就像netty 3中的MemoryAwareThreadPoolExecutor一样.
我该怎么办?
向管道添加处理程序时,可以指定EventExecutorGroup
处理程序:
EventExecutorGroup executor = new DefaultEventExecutorGroup(...);
...
ChannelPipeline p = ch.pipeline();
p.addLast(executor, new MyHandler());
Run Code Online (Sandbox Code Playgroud)
EventExecutorGroup
类似于OrderedMemoryAwareThreadPoolExecutor
它不会强制执行任何内存约束.您必须实现自己的处理程序来强制执行内存约束 - MemoryAwareThreadPoolExecutor
效率不高并且通常会出现性能问题.
没有替代品,MemoryAwareThreadPoolExecutor
因为Netty 4中的所有处理程序方法都是按顺序为同一连接调用的.如果你想要无序执行,你将不得不将任务交给a java.util.concurrent.Executor
.这个决定是有意的 - 否则处理程序实现不能消除线程安全性.
归档时间: |
|
查看次数: |
2674 次 |
最近记录: |