欢迎大家来到IT世界,在知识的湖畔探索吧!
在Java语言中提供了各种各样的输入输出流Stream,使我们能够很方便的对数据进行操作,其中的管道流(PipeStream)是一种特殊的流,用于在不同线程之间直接传送数据。一个线程发送数据到输出管道,另一个线程从输入管道中读取数据。通过使用管道,实现不同线程之间的通信,而无须借助于类似临时文件之类的东西。
在Java的JDK中提供了四个类来使线程间可以进行通信:
-
PipedInputStream和PipedOutputStream
-
PipedReader和PipedWrite
下面看下第一种方法的测试代码
这个类给发送数据到输出管道
这个类从输出管道中读数据。
这个线程调用写数据的类,给管道写入信息。
这个线程调用读数据的类,从管道中读取数据并在控制台显示。
这里使用inputStream.connect(outputStream)或outputStream.connect(inputStream)的作用使两个Stream之间产生通信链接,这样才可以将数据进行输出与输入。
从结果可以看到,两个线程通过管道流成功进行了数据的传输。
首先是读线程的启动, 由于没有数据被写入,所以线程会被阻塞在int readLength = input.read(byteArray);代码中,直到有数据被写入,才会继续往下执行。
喜欢的关注一波~
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22163.html