• 技术文章 >java >java基础

    java管道流发送线程

    小妮浅浅小妮浅浅2021-01-05 11:03:21原创1891

    在多个线程的使用中,可以使用管道流把线程进行连接。这里有的人会把它用到一个线程中,是行不通的。管道流分为两种类型:字节流和字符流。在使用上有诸多需要注意的地方,今天从最基础的线程实例学起,这也是java管道流简单的用法,下面就管道流的基础概念、使用、实例为大家带来详细内容分享。

    1.概念

    管道流主要用于连接两个线程的通信。管道流也分为字节流(PipedInputStream、PipedOutputStream)和字符流(PipedReader、PipedWriter)。

    2.使用事项

    第一,管道流仅用于多个线程之间传递信息,若用在同一个线程中可能会造成死锁;

    第二,管道流的输入输出是成对的,一个输出流只能对应一个输入流,使用构造函数或者connect函数进行连接;

    第三,一对管道流包含一个缓冲区,其默认值为1024个字节,若要改变缓冲区大小,可以使用带有参数的构造函数;

    第四,管道的读写操作是互相阻塞的,当缓冲区为空时,读操作阻塞;当缓冲区满时,写操作阻塞;

    第五,管道依附于线程,因此若线程结束,则虽然管道流对象还在,仍然会报错“read dead end”;

    第六,管道流的读取方法与普通流不同,只有输出流正确close时,输出流才能读到-1值。

    3.实例

    public class Sender implements Runnable
    {
    private PipedOutputStream out = new PipedOutputStream();
    public PipedOutputStream getOutputStream()
    {
    return out;
    }
    public void run()
    {
    String str = "Receiver, 你好!";
    try
    {
    out.write(str.getBytes()); // 向管道流中写入数据(发送)
    out.close();
    }
    catch (IOException e)
    {
    e.printStackTrace();
    }
    }
    }

    以上就是java管道流发送线程的方法,作为最基础的管道流操作线程方法,是需要每个初学者需要掌握的,理解完基础内容后就可以运行代码部分。

    专题推荐:java 管道流
    品易云
    上一篇:java打印流的输出使用 下一篇:对象流在java中的读写

    相关文章推荐

    • IO流序列化在java中的作用及不足• java缓冲流的两种类型• java中的轮换流是什么• 转换流在java中的两种类• java打印流的输出使用

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网