上一章节讲了wait/notify通信,这一节我们来探讨使用管道进行通信。

java中提供了IO流使我们很方便的对数据进行操作,pipeStream是一种特殊的流,用于不同线程间直接传送数据。一个线程将数据发送到输出管道,另一个线程从输入管道读取数据。通过管道实现通信不需要借助临时文件这类东西。
java中提供了四个类使得线程间可以通信:
①字节流:PipeInputStream,PipedOutputStream
②字符流:PipedReader,PipedWriter
下面我们看看字节流的实现方法:
package pipeInputOutput;
//输出流
import java.io.IOException;
import java.io.PipedOutputStream;
public class WriteDate {
public void writeMethod(PipedOutputStream out) {
try {
System.out.println("write:");
for(int i=0;i<300;i++) {
String outDate=""+(i+1);
out.write(outDate.getBytes());
System.out.print(outDate);
}
System.out.println();
out.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}