两个线程之间单向传递数据时,可以使用 Pipe 规范数据的读写操作。
Pipe 中可以存放数据,并且 Pipe 包含了 SinkChannel 和 SourceChannel 两个 Channel。其中,SinkChannel 用于向 Pipe 中写数据,SourceChannel 用于从 Pipe 中读数据。
public static void testPipe() throws IOException {
//创建管道
Pipe pipe = Pipe.open();
ByteBuffer buf = ByteBuffer.allocate(1024);
// 通过 SinkChannel,向 Pipe 中写数据
Pipe.SinkChannel sinkChannel = pipe.sink();
buf.put("helloworld".getBytes());
buf.flip();
sinkChannel.write(buf);
// 通过 SourceChannel,从 Pipe 中读取数据
Pipe.SourceChannel sourceChannel = pipe.source();
buf.flip();
int len = sourceChannel.read(buf);
System.out.println(new String(buf.array(), 0, len));
sourceChannel.close();
sinkChannel.close();
}
helloworld
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/chengqiuming/article/details/124894725
内容来源于网络,如有侵权,请联系作者删除!