java nio
无名草110
人生如逆旅 我亦是行人
展开
-
java nio中,HeapByteBuffer与DirectByteBuffer的区别
HeapByteBuffer,顾名思义,是写在jvm堆上面的一个buffer,底层的本质是一个数组,用类封装维护了很多的索引(limit/position/capacity等)DirectByteBuffer,底层的数据其实是维护在操作系统的内存中,而不是jvm里,DirectByteBuffer里维护了一个引用address指向了数据,从而操作数据 HeapByteBuffer优点:...原创 2017-08-15 16:18:35 · 3066 阅读 · 2 评论 -
java普通io(stream)处理文件读写的过程
场景:使用java的stream,从文件a读取内容,然后写进文件b,整个过程如下图所示(以linux系统为例)步骤解析:1.用户空间向内核空间发出指令——我要读取文件a2.系统切换上下文,从用户空间切到内核空间,内核空间准备向硬盘读取内容3.硬盘内容以DMA形式读取进内核缓冲区(tips:DMA——Directory Memory Access 直接内存访问)4.系统切换上...原创 2017-09-21 20:25:35 · 1356 阅读 · 0 评论 -
reactor模式前序:传统IO的WEB服务器设计
先看一段经典的WEB JAVA服务器设计 JAVA代码为(伪代码) ServerSocket serverSocket = ...;serverSocket.bind(8899);while (true) { final Socket socket = serverSocket.accept(); // 阻塞 new Thread(new Runnab...原创 2018-03-26 19:41:33 · 247 阅读 · 0 评论 -
reactor模式前序(二):NIO WEB服务器设计
前文介绍了传统IO的WEB经典服务器 reactor模式前序:传统IO的WEB服务器设计下面看看JAVA NIO的WEB服务器设计NIO是基于事件驱动的,对于NIO来说,重要组件是Selector,其服务器代码为: /* * 流程总结: * 1.初始时,只对accept事件感兴趣,selectionkey只有accept事件 * 2.当有连接进来时,处理完accept...原创 2018-03-27 11:29:08 · 179 阅读 · 0 评论 -
reactor模式:单线程的reactor模式
reactor模式称之为响应器模式,常用于nio的网络通信框架,其服务架构图如下不同于传统IO的串行调度方式,NIO把整个服务请求分为五个阶段read:接收到请求,读取数据decode:解码数据compute:业务逻辑处理encode:返回数据编码send:发送数据其中,以read和send阶段IO最为频繁 代码实现 // Reactor線...原创 2018-03-27 14:58:13 · 3155 阅读 · 1 评论 -
reactor模式:多线程的reactor模式
上文说到单线程的reactor模式 reactor模式:单线程的reactor模式单线程的reactor模式并没有解决IO和CPU处理速度不匹配问题,所以多线程的reactor模式引入线程池的概念,把耗时的IO操作交由线程池处理,处理完了之后再同步到selectionkey中,服务器架构图如下 上文(reactor模式:单线程的reactor模式)提到,以read和send...原创 2018-03-27 15:16:17 · 8021 阅读 · 0 评论 -
reactor模式:主从式reactor
前面两篇文章提到reactor模式:单线程的reactor模式reactor模式:多线程的reactor模式NIO的server模式只有5个阶段,但是,NIO的selectionkey里确实有个accept事件,所以,为了区别,衍生出了主reactor和从reactor并且,从reactor可以根据服务器的负荷,新增多个从reactor进行请求处理服务器架构如下图这个就...原创 2018-03-27 15:37:21 · 3608 阅读 · 0 评论 -
Buffer的重要属性 position/limit/capacity
package nio;import java.nio.IntBuffer;/** * Buffer的重要属性 position/limit/capacity * position:buffer当前所在的操作位置 * limit:buffer最大的操作位置 * capacity:buffer的最大长度 */public class NioTest2 { public...原创 2018-07-19 17:14:13 · 2189 阅读 · 0 评论