java线程间通信
2015-09-02 19:36
621 查看
线程间进行输入/输出通信最常用的方式是”管道“方式。一个线程从管道一端写入数据,另一个线程从管道另一端读出数据。
read content:J
read content:K
read content:L
read content:M
read content:N
read content:O
public class pipedIO { public static void main(String[] args) throws IOException { pipeSender sender=new pipeSender(); pipeReceiver receiver=new pipeReceiver(sender); sender.start(); receiver.start(); } } class pipeSender extends Thread { private PipedWriter out=new PipedWriter(); public PipedWriter getPipedWriter() { return out; } public void run() { while(true) { for(char c='A';c<='Z';c++) { try { out.write(c); } catch (IOException e) { // TODO Auto-generated catch block throw new RuntimeException(e); } } } } } class pipeReceiver extends Thread { private PipedReader in; public pipeReceiver(pipeSender sender) throws IOException { in=new PipedReader(sender.getPipedWriter()); } public void run() { try { while(true) { System.out.println("read content:"+(char)in.read()); } } catch (IOException e) { // TODO Auto-generated catch block throw new RuntimeException(e); } } }输出部分结果:
read content:J
read content:K
read content:L
read content:M
read content:N
read content:O
相关文章推荐
- java并发编程第六章(7)生成并发编程随机数
- java优化占用内存的方法(一)
- java并发编程第六章(6)使用线程安全可遍历映射
- java中final static关键字用法
- mybatis错误-org.mybatis.spring.transaction.SpringManagedTransactionFactory.newTransaction
- java工具类之Graphics
- Java并发编程:volatile关键字解析
- Java实现二叉排序树
- Spring SpEL表达式
- java使用Junit工具进行单元测试
- Eclipse中Axis2发布WebService
- 搭建Spring + SpringMVC + Mybatis框架之一(创建项目)
- Android学习笔记.IDE使用eclipse还是studio
- Java基础-----基础小结
- 收藏基本Java项目开发的书
- 代理模式之JDK动态代理
- java 获取时间
- 缓存与饼干,spring mvc使用ehcache
- 【java基础】重载与重写
- 【java基础】重载与重写