前两节我们讲的是让线程之间协调运行,之间没有实际上的通信,下面我们用管道流来实现两个线程之间的通信。管道流有:PipedInputStream和PipedOutputStream(管道字节流)、PipedWriter和PipedReader(管道字符流)、Pipe.SinkChannel和Pipe.SourceChannel(新IO管道的Channel)。
使用规则:
1.使用new操作符新建管道输入、输出流。
2.使用管道输入流或管道输出流的connect方法将输入输出流连接起来。
3.将输入、输出流传入各自线程。
4.最终两个线程依赖对应的流来实现之间的通信。
代码示范(以字符流为例,其它形式以与其一般):
管道输出流线程 管道输入流线程 测试结果通常我们没不要去使用管道流是实现两个线程之间的通信,因为线程间是属于同一个进程的,他们共用同一个数据,能很好的实现数据交换。
网友评论