Nio与Netty
jacobbbbbbbb
一个java学习者的学习笔记
展开
-
Netty组件源码解析(4)
SelectedSelectionKeySet 继承AbstractSet抽象类,已经select的NIO SelectionKey集合final class SelectedSelectionKeySet extends AbstractSet<SelectionKey> { //Selectionkey数组 SelectionKey[] keys; //数组可读大小 int size; SelectedSelectionKeySet() {原创 2020-07-13 17:26:34 · 211 阅读 · 0 评论 -
Netty组件源码解析(3)
SingleThreadEventLoop 基于单线程的EventLoop抽象类,将Channel注册到EventLoop上public abstract class SingleThreadEventLoop extends SingleThreadEventExecutor implements EventLoop { //默认任务队列最大数量 protected static final int DEFAULT_MAX_PENDING_TASKS = Math.max(16,原创 2020-07-12 14:25:05 · 154 阅读 · 0 评论 -
Netty组件源码解析(2)
三.EventLoop类图EventExecutor 继承EventExecutorGroup接口,事件执行器接口public interface EventExecutor extends EventExecutorGroup { //返回自己 @Override EventExecutor next(); //当前线程所处的EventExecutorGroup EventExecutorGroup parent(); //当前线程是否在EventLoop线程中原创 2020-07-10 22:06:12 · 168 阅读 · 0 评论 -
Netty组件源码解析(1)
一.Bootstrap这是Netty中的配置类,也是程序开始的组件。AbstractBootstrap是BootStrap和ServerBootStrap的父类抽象类public abstract class AbstractBootstrap<B extends AbstractBootstrap<B, C>, C extends Channel> implements Cloneable { @SuppressWarnings("unchecked") st原创 2020-07-10 12:30:16 · 163 阅读 · 0 评论 -
NIO组件源码解析
一.Channelpublic interface Channel extends Closeable { //判断此通道是否处于打开状态 public boolean isOpen(); //关闭此通道 public void close() throws IOException;}四个主要的实现类:1.SocketChannel,客户端发起TCP的Channel//客户端通道,主要两种方式可以创建SocketChannel,一种是打开一个SocketChannel并且连接原创 2020-07-08 21:55:56 · 142 阅读 · 0 评论