0

私は次の問題を抱えています:

次のAPIを使用したモジュールが提供されます。

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

このモジュールの目的は、メインシステムと外部プロセス(この場合はProcessのインスタンス)間の通信を容易にすることです。

私がやろうとしているのは、「モックプロセス」を実装することです。これは、実際にはThreadインスタンスですが、独自の疑似入力、出力、およびエラーストリームがあります。ここで重要なのは、ストリーム自体の性質です。たとえば、ストリームの実装は次のように返されます。

((MockProcess)mockProcess).getInputStream() 

機能的に同一であること

((Process)realProcess).getInputStream(). 

すべての意図と目的のために、それらは完全に交換可能でなければなりません。

これを実現するには、(それぞれ)どのInputStreamおよびOutputStream実装を使用する必要がありますか?私が見つけた唯一の提案は、パイプストリームを使用することです...しかし、これは本当に最良のオプションですか?

4

1 に答える 1

0

UNIX ではプロセス間通信にパイプが使用されるため、これらが最適なオプションであると言えます。ディスクでの I/O は、どのような形式であっても避ける必要があります。そして、すべての重い tcp/ip 過負荷を避ける必要があります。したがって、パイプは本当に最良の選択肢です。

于 2013-01-21T23:47:26.100 に答える