netty4中ChannelHandlerContext.executor()
和Channel.eventLoop()
之间有什么区别?
当我想在处理程序中运行一个应该使用的任务时?
ctx.executor().submit(task);
ctx.channel().eventLoop().submit(task);
答案 0 :(得分:2)
一般来说,这是一样的。这取决于你选择什么方法。您还可以查看AbstractChannelHandlerContext.executor()
方法并找到该上下文重复通道代码:
public EventExecutor executor() {
if (executor == null) {
return channel().eventLoop();
} else {
return executor;
}
}
但是,netty允许您为不同的EventExecutors在同一管道中分配处理程序。在那种情况下,频道和上下文的返回结果可能不同。但是提交任务并不是什么大问题。