1.Netty介绍及NIO三大组件

  1. Netty网络编程
  2. Netty的底层是NIO(非阻塞IO),常用的多线程和线程池使用的是阻塞IO,其效率并不高。
  3. 支持高并发,性能好
  4. 高性能的服务端程序、客户端程序

NIO三大组件

一、Channel

读写数据的双向传输通道

常见的传输通道

  • FIleChannel 文件传输通道
  • DatagramChannel UDP数据传输通道
  • SocketChannel TCP数据传输通道,专用于服务器、客户端
  • ServerSocketChannel TCP数据传输通道,专用于服务器

二、Buffer

内存缓冲区,用来暂存从channel中读取的数据,也可以将channel中的数据写入Buffer。

常用的Buffer

ByteBuffer,以字节的形式,抽象类:

  • MappedByteBuffer
  • DirectByteBuffer
  • HeapByteBuffer

三、Selector

  • Selector配合一个线程来管理多个Channel;
  • 获得这些Channel上发生的事件 (可连接,可读,可写);
  • Channel工作在非阻塞模式下,不会让线程吊死在一个Channel上;
  • 适合连接数多,但流量低的场景
相关推荐
前端 贾公子2 分钟前
uniapp 小程序获取后端的二进制 保存到手机相册
java·前端·javascript
希望永不加班3 分钟前
Spring Boot 统一异常处理:从混乱到优雅的实用方案
java·spring boot·后端·spring·状态模式
学习要积极7 分钟前
Spring 组件工具类-FFmpegUtils
java·后端·spring
洋不写bug7 分钟前
操作系统管理:进程解析
java
liurunlin8888 分钟前
Tomcat 都有哪些核心组件
java·tomcat·firefox
滴滴答滴答答9 分钟前
机考刷题之 13 LeetCode 1004 最大连续1的个数 III
java·算法·leetcode
逆境不可逃12 分钟前
【从零入门23种设计模式17】行为型之中介者模式
java·leetcode·microsoft·设计模式·职场和发展·中介者模式
鸽鸽程序猿20 分钟前
【JavaEE】【SpringAI】聊天模型
java·java-ee
韭菜张师傅20 分钟前
Ceph环境完全重置指南:彻底清理集群环境
java·网络·ceph
SunnyDays101121 分钟前
使用 Java 实现 Word 文档水印自动化(全面指南)
java·添加水印·word文档