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