我想分离一个子进程,从Channel提供传入数据并将结果流回客户端。到目前为止,我遇到的最好的解决方案是在我的上游处理程序前放置一个OrderedMemoryAwareThreadPoolExecutor,它会从另一个线程中读取进程的输出并将其写回到通道上。有更好的方法吗?
答案 0 :(得分:0)
您可以创建自己的线程池以在作业处理程序中提交新线程。 OrderedMemoryAwareThreadPoolExecutor是标准的excutorservice的包装器。它的优点是它可以计算内存成本。您可以使用自己的线程池更好地控制自己的逻辑。正如在netty教程中所说,你需要为工作处理分叉一个新线程。 I / O绑定到一个套接字,它隐藏在一个网络通道中。您需要将通道或通道上下文传递到该新线程。套接字始终存在,并且通过读取/写入新线程中的套接字来执行异步IO。