0

我有以下问题:

我得到了一个具有以下 API 的模块:

    public void start(InputStream input, OutputStream output,
        InputStream error, PipeListener<T> listener) 

该模块的目的是促进主系统和外部进程(在本例中为 Process 实例)之间的通信。

我要做的是实现一个“模拟进程”,它实际上是一个线程实例,但有自己的伪输入、输出和错误流。这里的关键是流本身的性质,例如,我想要返回的流实现

((MockProcess)mockProcess).getInputStream() 

在功能上与

((Process)realProcess).getInputStream(). 

出于所有意图和目的,它们应该是完全可互换的。

我应该使用哪个 InputStream 和 OutputStream 实现(分别)来实现这一点?我能找到的唯一建议是使用管道流......但这真的是最好的选择吗?

4

1 回答 1

0

我会说它们是最好的选择,因为管道用于 unix 上的进程间通信。您应该避免在磁盘上进行任何形式的 I/O。你应该避免所有沉重的 tcp/ip 过载。所以管道确实是最好的选择。

于 2013-01-21T23:47:26.100 回答