Java 使用netty的异步进程I/O?

Java 使用netty的异步进程I/O?,java,asynchronous,ipc,netty,Java,Asynchronous,Ipc,Netty,我想分出一个子流程,将来自通道的传入数据反馈给它,并将结果流回到客户机。到目前为止,我提供的最好的解决方案是在我的上游处理程序前面放置一个线程,它分叉另一个线程来读取进程的输出并将其写回通道。有更好的方法吗?您可以创建自己的线程池,以便在作业处理程序中提交新线程。OrderedMemoryAwareThreadPoolExecutor是标准excutorservice的包装器。它的优点是可以计算内存开销。通过使用自己的线程池,可以更好地控制自己的逻辑。正如netty教程中所述,您需要为作业处理提

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

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

检查术语。分叉子进程在Linux上有明确的含义,即您希望创建一个具有唯一pid的新进程。但我认为您的意思是希望创建一个新的工作线程,并将工作负载分配给该线程的通道。线程!=流程我的意思是创建一个具有唯一pid的新流程。作为一个简单的例子,我想分叉“cat”,将通道数据输入其中,返回输出并将其流回到客户机。ATM,我必须创建一个新的线程来生成进程并来回推送数据。这是因为我不想在netty worker线程中放入阻塞代码,也不知道如何执行真正的异步子进程I/O。希望这能让事情变得更清楚。