/*管道(Pipe)*/

  Java NIO 管道是 /*2 个线程*/ 之间的 /*单向*/数据连接

  Pipe 有一个 source 通道 和 一个 sink 通道。数据会被写到 sink 通道,从source通道读取

  Thread A ---> SinkChannel(Pipe) ---> SourceChannel(Pipe) ---> Thread B

//从管道读取数据(访问source通道)

SourceChannel sourceChannel = pipe.source();

//调用source通道的 read() 方法来读取数据

ByteBuffer buffer = ByteBuffer.allocate(1024);

sourceChannel.read(buf);

 public class TestPipe {
@Test
public void test1() throws Exception {
// 1.获取管道
Pipe pipe = Pipe.open(); // 2.将缓冲区 中的数据写入管道 (线程A)
ByteBuffer buffer = ByteBuffer.allocate(1024); SinkChannel sinkChannel = pipe.sink();
buffer.put("通过单向管道发送数据".getBytes());
buffer.flip();
sinkChannel.write(buffer); // 3.读取缓冲区中的数据 (线程B)
SourceChannel sourceChannel = pipe.source(); sourceChannel.read(buffer);
buffer.flip();
System.out.println(new String(buffer.array())); sourceChannel.close();
sinkChannel.close(); }
}

最新文章

  1. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)
  2. 在VS2010 下编译 cocos2d-x-2.1.4
  3. csu oj 1330 字符识别?
  4. SqlSever基础 select 用+号连接两个字符串
  5. 关于cocoapods添加静态库的奇葩配置
  6. EF+lambda表达式 实现LIKE模糊查询
  7. PHP如何添加内置的扩展
  8. OOP思想
  9. Sql Server合并多行询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数
  10. JS判断一个数组中有无重复元素(数字)
  11. vue-if与vue-show的区别
  12. 资源中心的ES 服务的COM.IFLYTEK.ERSP.API.RESOURCEAPI 接口注册ZOOKEEPER失败,解决记录
  13. Initialize a vector in C++ (5 different ways)
  14. c++向量
  15. 使用<c:set>标签配置项目路径
  16. Multiple Instance .NET Windows Service
  17. RFC 4627 JSON
  18. 网络文件系统与 Linux
  19. wcf服务查看工具
  20. 【转】Mysql两种存储引擎的异同【MyISAM和InnoDB】

热门文章

  1. C#将HTML代码转换为图片
  2. (十七)jdbc(Java Data Base Connectivity,java数据库连接)基础使用
  3. shell脚本批量执行命令----必需判断上一步执行结果--没有捷径
  4. iOS-二维码扫描界面(转)
  5. 搭建iOS开发环境
  6. Django:reverse反转URL并传递参数
  7. 在Win7环境下搭建Geant4工作平台
  8. socket网络编程 的基本方法:--ongoing
  9. S3. Android 消息推送
  10. python 脚本备份mssql数据库并删除数据库