Java-NIO(九):管道 (Pipe)
Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。
代码使用示例:
1 @Test 2 public void testPipe() throws IOException { 3 // 1、获取通道 4 Pipe pipe = Pipe.open(); 5 6 // 2、获取sink管道,用来传送数据 7 Pipe.SinkChannel sinkChannel = pipe.sink(); 8 9 // 3、申请一定大小的缓冲区 10 ByteBuffer byteBuffer = ByteBuffer.allocate(1024); 11 byteBuffer.put("123232142345234".getBytes()); 12 byteBuffer.flip(); 13 14 // 4、sink发送数据 15 sinkChannel.write(byteBuffer); 16 17 // 5、创建接收pipe数据的source管道 18 Pipe.SourceChannel sourceChannel = pipe.source(); 19 // 6、接收数据,并保存到缓冲区中 20 ByteBuffer byteBuffer2 = ByteBuffer.allocate(1024); 21 byteBuffer2.flip(); 22 int length = sourceChannel.read(byteBuffer2); 23 24 System.out.println(new String(byteBuffer2.array(), 0, length)); 25 26 sourceChannel.close(); 27 sinkChannel.close(); 28 29 }
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。