一、java.io中存在一中流叫管道流,类似管道的功能。PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流。这个两个流必须同时使用。
二、作用:进行两个线程间的通信。一个线程作为管道输出流,另一个线程作为管道输入流,在启动线程前,只需要将这两个线程的管道流连接到一起就可以。 这要就很方便的实现了两个线程间的通信。
三、例子(我这里谢了一个简单的例子。来说明不同线程之间的读写情况)
import java.io.PipedInputStream;import java.io.PipedOutputStream;public class PipeStream { //管道输出流 private static PipedOutputStream outputStream = new PipedOutputStream(); //管道输入流 private static PipedInputStream inputStream = new PipedInputStream(); public static void main(String[] args) throws Exception { //输出线程 Runnable out = ()-> { try { while(true) { Thread.sleep(1000); outputStream.write("pipe".getBytes()); } } catch (Exception e) { e.printStackTrace(); } }; //输入线程 Runnable in = ()-> { try { byte[] bytes = new byte [1024]; int len; while ((len = inputStream.read(bytes)) != -1) { System.out.println(new String(bytes,0,len)); } } catch (Exception e) { e.printStackTrace(); } }; //连接管道 inputStream.connect(outputStream); //启动线程 new Thread(out).start(); new Thread(in).start(); }}
继续阅读与本文标签相同的文章
上一篇 :
MySQL之char、varchar类型简析
下一篇 :
搭建Consul集群
-
java之观察者模式
2026-05-26栏目: 教程
-
springboot之websocket
2026-05-26栏目: 教程
-
sql之强制索引
2026-05-26栏目: 教程
-
springboot之RMI的使用
2026-05-26栏目: 教程
-
idea激活方式
2026-05-26栏目: 教程
