Java使用管道流实现线程通信

2018-06-10  本文已影响12人  黎繁介

        前两节我们讲的是让线程之间协调运行,之间没有实际上的通信,下面我们用管道流来实现两个线程之间的通信。管道流有:PipedInputStreamPipedOutputStream(管道字节流)、PipedWriterPipedReader(管道字符流)、Pipe.SinkChannelPipe.SourceChannel(新IO管道的Channel)。        

使用规则:

        1.使用new操作符新建管道输入、输出流。

        2.使用管道输入流或管道输出流的connect方法将输入输出流连接起来。

        3.将输入、输出流传入各自线程。

        4.最终两个线程依赖对应的流来实现之间的通信。

代码示范(以字符流为例,其它形式以与其一般):

管道输出流线程 管道输入流线程 测试结果

        通常我们没不要去使用管道流是实现两个线程之间的通信,因为线程间是属于同一个进程的,他们共用同一个数据,能很好的实现数据交换。


---------------上一节“Java-线程的协调运行”--------------------

---------------下一节“Java-线程组”-----------------------------

上一篇下一篇

猜你喜欢

热点阅读