プロセスの出力ストリームとエラーストリームから読み取り、それらを1つのテキストストリームにマージしたいと思います。私のプログラムはGroovyで、次のようになります。
def mergeStream = new ByteArrayOutputStream()
process.waitForProcessOutput(mergeStream, mergeStream)
問題は、ByteArrayOutputStreamがスレッドセーフではなく、waitForProcessOutput()がmergeStreamに追加する2つのスレッドを生成することです。使用できるスレッドセーフなバリアントはありますか?mergeStreamへのアクセスを制御することを他にどのように推奨しますか?実際には、この実装では文字が削除されることがあるようです。