1+ package com .brianway .learning .java .multithread .communication .example12 ;
2+
3+ import java .io .IOException ;
4+ import java .io .PipedInputStream ;
5+ import java .io .PipedOutputStream ;
6+
7+ /**
8+ * Created by Brian on 2016/4/14.
9+ */
10+
11+ /**
12+ * P173
13+ * 通过管道进行线程间通信:字节流
14+ *
15+ * 字符流PipedWriter,PipedReader,同理。
16+ */
17+ public class Run12_pipeInputOutput {
18+ public static void main (String [] args ) {
19+ try {
20+ WriteData writeData = new WriteData ();
21+ ReadData readData = new ReadData ();
22+
23+ PipedInputStream inputStream = new PipedInputStream ();
24+ PipedOutputStream outputStream = new PipedOutputStream ();
25+
26+ //inputStream.connect(outputStream);
27+ outputStream .connect (inputStream );
28+
29+ ThreadRead threadRead = new ThreadRead (readData ,inputStream );
30+ threadRead .start ();
31+
32+ Thread .sleep (2000 );
33+
34+ ThreadWrite threadWrite = new ThreadWrite (writeData ,outputStream );
35+ threadWrite .start ();
36+
37+ } catch (IOException e ) {
38+ e .printStackTrace ();
39+ }catch (InterruptedException e ){
40+ e .printStackTrace ();
41+ }
42+ }
43+ }
44+
45+
46+ /*
47+ 输出:
48+ read :
49+ write :
50+ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
51+ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
52+
53+ --------------
54+ 取消注释//inputStream.connect(outputStream);
55+ 输出:
56+ java.io.IOException: Already connected
57+ at java.io.PipedOutputStream.connect(PipedOutputStream.java:100)
58+ at com.brianway.learning.java.multithread.communication.example12.Run12_pipeInputOutput.main(Run12_pipeInputOutput.java:25)
59+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
60+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
61+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
62+ at java.lang.reflect.Method.invoke(Method.java:483)
63+ at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
64+
65+
66+ */
0 commit comments