0
我应该把业务逻辑放在netty4中?我应该在哪里放置netty4的业务逻辑?在chanelRead0()或运行一个任务?
我应该只是把我的代码放在@Override channelRead0()
或运行一个任务吗? 我知道这两者会碰到相同的IO事件循环,但它们之间的区别是什么?哪一个更好?
解决方案1:
@Override
channelRead0(){
business code;
}
解决方案2:
@Override
channelRead0(){
ctx.executor().submit(new task(){business code});
//or ctx.channel().eventLoop().submit(new task(){business code});
}
如果您使用NioEventLoop,除非您进行一些自定义,否则该任务实际上会被提交到执行您的'channelRead0'方法的线程的任务队列:) – coolcfan