对PipedOutputStream/PipedInputStream类的应用
2016-04-01 10:44
513 查看
编写程序实现两个线程间的管道通信。
实现代码如下:
Sender.java文件的代码:
Receiver.java文件中代码如下:
PipedStreamTest.java文件中的代码如下:
运行结果:
实现代码如下:
Sender.java文件的代码:
import java.io.*; public class Sender extends Thread { private PipedOutputStream out = new PipedOutputStream(); public PipedOutputStream getOutputStream() { return out; } public void run() { String strInfo = new String("hello,receiver!"); try { out.write(strInfo.getBytes()); out.close(); } catch (Exception e) { e.printStackTrace(); } } }
Receiver.java文件中代码如下:
import java.io.*; public class Receiver extends Thread { private PipedInputStream in = new PipedInputStream(); public PipedInputStream getInputStream() { return in; } public void run() { byte[] buf = new byte[1024]; try { int len = in.read(buf); System.out.println("the folloeing message comes from sender\n" + new String(buf, 0, len)); } catch (Exception e) { e.printStackTrace(); } } }
PipedStreamTest.java文件中的代码如下:
import java.io.*; public class PipedStreamTest { public static void main(String[] args) { // TODO Auto-generated method stub Sender t1 = new Sender(); Receiver t2 = new Receiver(); PipedOutputStream out = t1.getOutputStream(); PipedInputStream in = t2.getInputStream(); try { out.connect(in); // 或者in.connect(out);是一样的 } catch (Exception e) { e.printStackTrace(); } t1.start(); t2.start(); } }
运行结果:
相关文章推荐
- 对ByteArrayInputStream/ByteArrayOutputStream类的应用
- php冒泡排序
- Zend Studio使用技巧两则
- 【PHPStorm使用手册】php interpreter is not configured
- 对FileOutputStream/FileInputStream的应用
- Github上的PHP资源汇总大全
- PHP数学运算与数据处理实例分析
- php的PDO
- php函数之func_get_args()、func_get_arg()与func_num_args()
- 【PHPStorm使用手册】如何设置字体大小?
- PHP数学运算函数大汇总(经典值得收藏)
- yii2-user
- Doctrine学习笔记(实体ManyToMany) —— 4
- 最简单的FTP客户端、服务器端
- php 配置文件
- php 配置文件
- php 配置文件
- php多线程抓取网页
- 综合归纳:PHP中empty()、is_null()和isset()的区别
- phpexcel的使用