- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 AIO:简单代码示例
AIO目前使用并不多,只做代码示例...服务端代码package com.self.netty.aio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.AsynchronousChannelGroup;...
2020-01-03 17:38:22 405
原创 NIO(五):源码分析_Select部分
之前已经对register源码进行了分析,注册已经是NIO的核心代码,而Select部分更是重中之重 注册时注册Socket句柄到内存对象中 select()时构造多道线程取对应区间的Socket句柄,线程在处理过程中分为协调线程和工作线程,注意其中协调获取的关系 添加有效的Socket句柄到SelectionKey列表中,通过selectKeys()可以直接获取到,进行后续事件处理 ...
2020-01-03 17:36:05 213
原创 NIO(四):源码分析_Register部分
注册,就是将当前Channel注册到Selector上,是NIO源码的核心部分1,Channel.register()部分serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT):注册事件public final SelectionKey register(Selector sel, int ops, Object at...
2020-01-03 17:34:34 596
原创 NIO(三):源码分析_初始化部分
1,ServerSocketChannel初始化1.1,ServerSocketChannel serverSocketChannel = ServerSocketChannel.open()ServerSocketChannel.open()public static ServerSocketChannel open() throws IOException { // 先获取...
2020-01-03 17:33:53 402
原创 NIO(二):NIO三大核心概念
1,Buffer缓冲区缓冲区本质上就是一个可以读写数据的内存块,底层数据结构是数组,通过一组属性和方法来实现缓冲区数据的读、写及读写转换1.1,Buffer基本类体系结构对于Java基本数据类型,除过 Boolean 外,每一种基本类型的包装类,都存在一种 Buffer 缓冲区与之对应 对于Java对象,可以转换为 Byte 字节,通过 ByteBuffer 进行数据传递 每一种...
2020-01-03 17:30:19 609
原创 NIO(一):从一个简单的NIO示例开始
1,NIO和BIO比较 BIO以流的方法处理数据,而NIO以块的方式处理数据;效率提升很多 BIO是阻塞的,NIO是非阻塞的 BIO基于字节流和字符流进行操作,NIO基于Buffer缓冲区和Channel通道进行操作,基于Selector选择器监听通道中的时间,可以使用单线程监听多个通道数据 2,NIO三大核心概念缓冲区(Buffer) 通道(Channel...
2020-01-03 17:29:19 187
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人