温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在java中利用管道流发送线程

发布时间:2021-04-21 16:52:58 来源:亿速云 阅读:336 作者:Leah 栏目:编程语言

怎么在java中利用管道流发送线程?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。

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中利用管道流发送线程问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI