码迷,mamicode.com
首页 > 其他好文 > 详细

5.管道 Pipe

时间:2017-08-26 18:24:21      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:void   取数   java nio   exception   print   class   数据   span   nbsp   

/*管道(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);

 

 1 public class TestPipe {
 2     @Test
 3     public void test1() throws Exception {
 4         // 1.获取管道
 5         Pipe pipe = Pipe.open();
 6 
 7         // 2.将缓冲区 中的数据写入管道   (线程A)
 8         ByteBuffer buffer = ByteBuffer.allocate(1024);
 9 
10         SinkChannel sinkChannel = pipe.sink();
11         buffer.put("通过单向管道发送数据".getBytes());
12         buffer.flip();
13         sinkChannel.write(buffer);
14 
15         // 3.读取缓冲区中的数据   (线程B)
16         SourceChannel sourceChannel = pipe.source();
17 
18         sourceChannel.read(buffer);
19         buffer.flip();
20         System.out.println(new String(buffer.array()));
21         
22         sourceChannel.close();
23         sinkChannel.close();
24         
25 
26     }
27 }

 

5.管道 Pipe

标签:void   取数   java nio   exception   print   class   数据   span   nbsp   

原文地址:http://www.cnblogs.com/xuzekun/p/7435686.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!