1

我想分叉一个子进程,将来自 Channel 的传入数据提供给它,并将结果流回客户端。到目前为止,我提供的最佳解决方案是将OrderedMemoryAwareThreadPoolExecutor放在我的上游处理程序前面,该处理程序分叉另一个线程以读取进程的输出并将其写回通道。有一个更好的方法吗?

4

1 回答 1

0

您可以创建自己的线程池以在作业处理程序中提交新线程。OrderedMemoryAwareThreadPoolExecutor 是标准执行器服务的包装器。它的优点是可以计算内存成本。通过使用自己的线程池,您可以更好地控制自己的逻辑。如 netty 教程中所述,您需要 fork 一个新线程来处理作业。I/O 绑定到一个套接字,该套接字隐藏在 netty 通道中。您需要将通道或通道上下文传递到该新线程中。套接字始终存在,并且通过在新线程中读取/写入套接字来执行异步 IO。

于 2012-09-21T09:03:04.177 回答