Can I use pipedoutputstream for multi threads?
<p>Can i use one pipedoutputstream for multi threads and connect it to one pipedinputstream, then get all the output from the multi threads? </p>

<p>Following is the code snippet, what i want is the modify and delete thread's output can be used for sync thread, but delete thread's output is missed.
List P4Thread's run() method in the end. </p>

<pre><code>PipedInputStream input = new PipedInputStream();
PipedOutputStream output = new PipedOutputStream();

input.connect(output);

P4Thread syncthread = new P4Thread (new String[]{p4exe, "-x-", "sync", "-f"},input, out);
P4Thread modifythread = new P4Thread (new String[]{p4exe, "diff", "-se"},new ClosedInputStream(), output);
P4Thread deletethread = new P4Thread (new String[]{p4exe, "diff", "-sd"},new ClosedInputStream(), output);  

try {
    syncthread.start();
    modifythread.run();
    output.flush();

    deletethread.run();
    output.flush();
    output.close();

    syncthread .join();
    } catch (InterruptedException e) {
        syncthread .interrupt();
    }

public void run() { 
Launcher.ProcStarter ps = new Launcher.LocalLauncher(listener).launch(); 
ps.envs(env).stdin(input).stdout(output).cmds(cmdList); 
if (workDir != null) { 
    ps.pwd(workDir); 
}
try{
   ps.join();
   }catch (InterruptedException e) {
            if (output != null &amp;&amp; closePipes) {
                IOUtils.closeQuietly(output);
            }
            //return -1;
        } catch (IOException e) {
            if (output != null &amp;&amp; closePipes) {
                IOUtils.closeQuietly(output);
            }
        } finally {
            if (closePipes) {
                IOUtils.closeQuietly(input);
                IOUtils.closeQuietly(output);
            }
        }
}
</code></pre>
