Netty学习笔记二十、Netty任务队列Task了解以及Netty再了解

一、用户自定义任务

        // 用户自定义任务 该任务提交到scheduleTaskQueue 中
        ctx.channel().eventLoop().schedule((() -> {
            try {
                Thread.sleep(10 * 1000);
            } catch (Exception e) {
                System.out.println("发生异常" + e.getMessage());
            }
            ctx.writeAndFlush(Unpooled.copiedBuffer("hello 客户端======oooo3", CharsetUtil.UTF_8));
            System.out.println("当前系统时间为=====" + System.currentTimeMillis());
        }), 5, TimeUnit.SECONDS);

二、Netty模型再次了解

1、Netty抽象出两组线程池,BoosGroup 专门负责接收客户端连接,WorkerGroup 专门负责网络读写操作。

2、NioEventLoop 表示一个不断循环执行任务处理的线程,每个NioEventLoop都有一个Selector,用于监听绑定在其上的socket网络通道。

3、NioEventLoop 内部采用串行化设计,从消息的读取=> 解码=> 处理=> 编码=> 发送,始终由IO线程NioEventLoop负责。

1)NioEventLoopGroup 下包含多个NioEventLoop

2)每个NioEventLoop中包含有一个Selector,一个taskQueue

3)每个NioChannel 只会绑定在唯一的NioEventLoop上

4)每个NioEventLoop 上可以注册监听多个NioChannel

5)每个NioChannel 都绑定有一个自己的ChannPipeline

 

你可能感兴趣的:(【Netty】)