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上;
  • 适合连接数多,但流量低的场景
相关推荐
Cx330❀5 分钟前
《C++ 搜索二叉树》深入理解 C++ 搜索二叉树:特性、实现与应用
java·开发语言·数据结构·c++·算法·面试
爱吃烤鸡翅的酸菜鱼10 分钟前
深度解析《AI+Java编程入门》:一本为零基础重构的Java学习路径
java·人工智能·后端·ai
SimonKing15 分钟前
被卖的Hutool出AI模块了!它如何让Java调用大模型变得如此简单?
java·后端·程序员
不穿格子的程序员38 分钟前
从零开始刷算法-栈-字符串解码
java·开发语言
你不是我我42 分钟前
【Java 开发日记】设计模式了解吗,知道什么是饿汉式和懒汉式吗?
android·java·开发语言
♡喜欢做梦1 小时前
Spring MVC 响应处理:页面、数据与状态配置详解
java·javascript·spring·java-ee
计算机学姐1 小时前
基于SpringBoot的公务员考试管理系统【题库组卷+考试练习】
java·vue.js·spring boot·后端·java-ee·intellij-idea·mybatis
HahaGiver6661 小时前
Unity与Android原生交互开发入门篇 - 打开Android的设置
android·java·unity·游戏引擎·android studio
Blossom.1181 小时前
把AI“贴”进路灯柱:1KB决策树让老旧路灯自己报「灯头松动」
java·人工智能·python·深度学习·算法·决策树·机器学习
C# 学习者1 小时前
C# 为异步函数实现WaitAsync方法
java·前端·c#