Java管道流实现线程间通信过程的示例分析(java,线程,编程语言)

时间:2024-05-02 01:33:10 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

管道流

在Java语言中提供了各种各样的输入/输出流 Stream ,使我们能够很方便地对数据进行操作,其中管道流是一种特殊的流,用于在不同线程间直接传送数据。一个线程发送数据到输出管道流,另一个线程从输入管道流中读取数据。

通过使用管道,实现不同线程间的通信,而无须借助于类似临时文件之类的东西。

字节流

PipedInputStream 和 PipedOutputStream

字符流

PipedReader 和 PipedWriter

示例

publicclassPipeStreamTest{publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{WriteDatawriteData=newWriteData();ReadDatareadData=newReadData();PipedReaderreader=newPipedReader();PipedWriterwriter=newPipedWriter();writer.connect(reader);newThread(()->{writeData.writeMethod(writer);}).start();Thread.sleep(2000);newThread(()->{readData.readMethod(reader);}).start();}staticclassWriteData{publicvoidwriteMethod(PipedWriterwriter){try{System.out.println("write:");for(inti=0;i<300;i++){StringoutData=""+(i+1);writer.write(outData);System.out.print(outData);}System.out.println();writer.close();}catch(IOExceptione){e.printStackTrace();}}}staticclassReadData{publicvoidreadMethod(PipedReaderreader){try{System.out.println("read:");char[]byteArray=newchar[20];intreadLength=reader.read(byteArray);while(readLength!=-1){StringnewData=newString(byteArray,0,readLength);System.out.print(newData);readLength=reader.read(byteArray);}System.out.println();reader.close();}catch(IOExceptione){e.printStackTrace();}}}}

运行结果如下:

Java管道流实现线程间通信过程的示例分析

Java的优点是什么

1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Java管道流实现线程间通信过程的示例分析的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Java中Grpc实例创建负载均衡的示例分析下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18