![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
哦嗨哟思密达
欲戴皇冠,必承其重!
展开
-
网络套接字发送数据-->理解零拷贝
1、传统的IO模型:4次拷贝和3次状态切换 案例说明:通过套接字发送一份文件,用户没有其他操作 4次拷贝分别是:DMA拷贝(将文件从硬盘读取到内核空间)–>CPU拷贝(将内核空间中的数据拷贝到用户空间中)–>CPU拷贝(将用户空间中的数据拷贝到socket buffer中)–>DMA拷贝(socket缓冲区中的数据拷贝到TCP/IP协议栈中进行数据的封装) 3次切换分别是:应用程序需要发送数据那么就需要从1用户态切换到内核态,内核态便将硬盘中的数据加载到内核空间中,然后再从2内核态切换原创 2022-03-20 17:33:59 · 924 阅读 · 0 评论 -
Netty 群聊系统全面解析
案例说明:群聊系统 1、服务端代码 package com.atguigu.nio.groupchat; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.*; import java.util.Iterator; /** * 整个监听的核心就是:在每个通道上都会有一种事件检查机制,当通道上面有事件(连接、读写)发生时,原创 2022-03-20 11:59:49 · 427 阅读 · 0 评论 -
Netty中WorkerGroup分配客户端通道机制
在Netty中BossGroup负责客户端的连接请求事件,当客户端连接事件处理完毕后,便将该客户端对应的通道注册到WorkerGroup中,在WorkerGroup中有多个NIOEventLoop事件循环,该NIOEventLoop本身就是一个线程,WorkerGroup会按照命名如同nioEventLoopGroup-3-1的方式分配一个NIOEventLoop给该客户端,而注册到WorkerGroup中的通道也就添加到该NIOEventLoop中,后面就负责与该客户端的通信。 这个是我个人所学所感,哪里原创 2022-03-21 16:45:26 · 580 阅读 · 0 评论