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上;
  • 适合连接数多,但流量低的场景
相关推荐
Meepo_haha2 分钟前
Maven Spring框架依赖包
java·spring·maven
studyForMokey3 分钟前
【Android面试】ViewModel & LiveData & EventBus专题
android·java·面试
迷藏4945 分钟前
# 发散创新:用Rust构建高性能分布式账本节点——从零实现共识算法与链上数据存储
java·python·rust·共识算法·分布式账本
Flittly7 分钟前
【SpringAIAlibaba新手村系列】(5)Prompt 提示词基础与多种消息类型
java·笔记·spring·ai·springboot
迷海15 分钟前
docker命令大全
java·docker·eureka
杜子不疼.16 分钟前
高并发场景下 Spring MVC + 虚拟线程 vs WebFlux 选型对比
java·人工智能·spring·mvc
曹牧19 分钟前
Tomcat 启动内存的设置
java·tomcat
七夜zippoe20 分钟前
云原生Java应用部署:将Spring Boot应用迁移至Kubernetes完整指南
java·spring boot·docker·云原生·kuberbertes
ywf121522 分钟前
java进阶1——JVM
java·开发语言·jvm