zoukankan      html  css  js  c++  java
  • java io之管道流

      一、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();
    
        }
    
    }
  • 相关阅读:
    DNS 主从同步配置
    Linux LVM卷组管理
    python ssh 执行shell命令
    python 批量远程机器,执行Linux命令
    连接管理 与 Netty 心跳机制
    java 注解 知识整理
    SOFARPC —— SPI 解析
    SOFARPC —— Generic Service (泛化调用) 解析
    线程池
    关于ava容器、队列,知识点总结
  • 原文地址:https://www.cnblogs.com/ll409546297/p/7988310.html
Copyright © 2011-2022 走看看