English 中文(简体)
我能用管道输出流做多线吗?
原标题:Can I use pipedoutputstream for multi threads?
  • 时间:2012-05-22 03:35:35
  •  标签:
  • java

我可以用一个管道输出流来连接多线线, 并将其连接到一个管道输入流, 然后从多线中获取全部输出吗?

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.

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 && closePipes) {
                IOUtils.closeQuietly(output);
            }
            //return -1;
        } catch (IOException e) {
            if (output != null && closePipes) {
                IOUtils.closeQuietly(output);
            }
        } finally {
            if (closePipes) {
                IOUtils.closeQuietly(input);
                IOUtils.closeQuietly(output);
            }
        }
}
问题回答

是的,你可以,只要你照顾 同步你的多行写作 这样他们不会间断。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签