JAVA中管道通讯(线程间通讯)例子
Java I/O系统是建立在数据流概念之上的,而在UNIX/Linux中有一个类似的概念,就是管道,它具有将一个程序的输出当作另一个程序的输入的能力。在Java中,可以使用管道流进行线程之间的通信,输入流和输出流必须相连接,这样的通信有别于一般的Shared Data通信,其不需要一个共享的数据空间。
package lesson.io.test; import java.io.*; public class TestPiped
{ public static void main(String[] args)
{ Sender sender = new Sender();
Recive recive = new Recive();
PipedInputStream pi=recive.getPipedInputputStream();
PipedOutputStream po=sender.getPipedOutputStream();
try
{
pi.connect(po);
} catch (IOException e)
{
System.out.println(e.getMessage());
}
sender.start();
recive.start(); } } class Sender extends Thread
{
PipedOutputStream out = null; public PipedOutputStream getPipedOutputStream()
{
out = new PipedOutputStream();
return out;
} @Override
public void run()
{ try
{
out.write("Hello , Reciver!".getBytes());
} catch (IOException e)
{
System.out.println(e.getMessage());
}
try
{
out.close();
} catch (IOException e)
{
System.out.println(e.getMessage());
} } } class Recive extends Thread
{
PipedInputStream in = null; public PipedInputStream getPipedInputputStream()
{
in = new PipedInputStream();
return in;
} @Override
public void run()
{ byte[] bys = new byte[1024];
try
{
in.read(bys);
System.out.println("读取到的信息:" + new String(bys).trim());
in.close();
} catch (IOException e)
{
System.out.println(e.getMessage());
} }
}
JAVA中管道通讯(线程间通讯)例子的更多相关文章
- 如何在java中实现跨线程的通讯
一般而言,如果没有干预的话,线程在启动之后会一直运行到结束,但有时候我们又需要很多线程来共同完成一个任务,这就牵扯到线程间的通讯. 如何让两个线程先后执行?Thread.join方法 private ...
- Java 中如何实现线程间通信
世界以痛吻我,要我报之以歌 -- 泰戈尔<飞鸟集> 虽然通常每个子线程只需要完成自己的任务,但是有时我们希望多个线程一起工作来完成一个任务,这就涉及到线程间通信. 关于线程间通信本文涉及到 ...
- java 利用管道实现线程间通信
package com.lb; import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutpu ...
- Java中快如闪电的线程间通讯
这个故事源自一个很简单的想法:创建一个对开发人员友好的.简单轻量的线程间通讯框架,完全不用锁.同步器.信号量.等待和通知,在Java里开发一个轻量.无锁的线程内通讯框架:并且也没有队列.消息.事件或任 ...
- 黑马程序员——JAVA基础之多线程的线程间通讯等
------- android培训.java培训.期待与您交流! ---------- 线程间通讯: 其实就是多个线程在操作同一个资源,但是动作不同. wait(); 在其他线程调用此对象的notif ...
- (转载)Java里快如闪电的线程间通讯
转自(http://www.infoq.com/cn/articles/High-Performance-Java-Inter-Thread-Communications) 这个故事源自一个很简单的想 ...
- Java 里快如闪电的线程间通讯
这个故事源自一个很简单的想法:创建一个对开发人员友好的.简单轻量的线程间通讯框架,完全不用锁.同步器.信号量.等待和通知,在Java里开发一个轻量.无锁的线程内通讯框架:并且也没有队列.消息.事件或任 ...
- java 并发性和多线程 -- 读感 (二 线程间通讯,共享内存的机制)
参考文章:http://ifeve.com/java-concurrency-thread-directory/ 其中的竞态,线程安全,内存模型,线程间的通信,java ThreadLocal类小节部 ...
- Java:多线程<三>死锁、线程间通讯
死锁: 同步嵌套同步,而且使用的锁不是同一把锁时就可能出现死锁 class Test implements Runnable { private boolean flag; Test(boolean ...
- 【转】JAVA 并发性和多线程 -- 读感 (二 线程间通讯,共享内存的机制)
原文地址:https://www.cnblogs.com/edenpans/p/6020113.html 参考文章:http://ifeve.com/java-concurrency-thread-d ...
随机推荐
- DPDK编译步骤
大页内存分配: NUMA系统(现在的linux一般都是) echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048 ...
- Python正则化学习
- RDLC中添加参数,用来显示报表中数据集之外的信息。
我添加了两个参数,首先后台: ReportParameter rp = ,,).ToString()); ReportParameter rp1 = new ReportParameter(" ...
- nginx 启动、重启、关闭
一.启动 cd usr/local/nginx/sbin./nginx 二.重启 更改配置重启nginx kill -HUP 主进程号或进程号文件路径或者使用cd /usr/local/nginx/s ...
- table清除样式大全
table{width:100%;text-align:center;border-collapse:collapse;border-spacing:1;border-spacing:0; }tabl ...
- Mina的ProtocolEncoderOutput之坑
这个问题是之前测试上万个连接的pingpong发现的,调了很久,但当时急着做其他事,就没有详细记录下来,现在回想起来也有点记不清具体哪儿了. 表现是在测试上万个连接的pingpong时会出现服务器挂起 ...
- Android Studio 如何切换sdk
选择File-->Project Structure 弹出框中选择Project 看到中间的Project SDK项. 点击Edit或者New 然后就可以选择Build target 和Ja ...
- SAP连接电脑串口读数(电子称,磅等数据读取)
这是几年前做的了,一直都不想分享出来,后来想想为了能够给大家点想法,献出来了... 这是一个电脑读称的方法,一般用COMM口连接的电子设备都可参考. 如果是对串口参数不确定的,可以网上找个串口测试工具 ...
- 使用Autolayout对多行文本Label进行布局,高度不准确的解决办法!
BUG描述: 今天公司的项目中发现了一个BUG,大概给大家描述一下,tabbleView有一个tableFooterView,这个footView中有一个Label,是多行显示文本,程序用的是Auto ...
- 关于中文字体的设置说明(font:12px/1.5 tahoma,arial,\5b8b\4f53)
定义全局字体是这样的font:12px/1.5 tahoma,arial,\5b8b\4f53 前面的12px字体,1.5表示行高,18px 后面的\5b8b\4f53为什么写成这样的呢? 请教百度谷 ...