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 小时前
【对比了几家电商商城系统】
java·开源
大尚来也3 小时前
Java 线程池深度解析:ThreadPoolExecutor 七大参数与核心原理
java·python·算法
Mike_6663 小时前
百度云车牌调用识别-Java工程
java·百度云·车牌识别·在线调用
白宇横流学长3 小时前
基于 SpringBoot 的社团活动报名管理系统设计与实现
java·spring boot·后端
子豪-中国机器人3 小时前
python AI自动化
java·前端·python
wy3136228213 小时前
Android——组件化实战:Application启动时用ARouter实现跨模块调用
java·前端·spring
旺仔小拳头..3 小时前
请求对象HttpServletRequest与响应对象HttpServletResponse
java
野犬寒鸦3 小时前
从零起步学习AI大模型应用开发 || 第三章:智能体项目实战中的问题与解决方案及思路详解
java·服务器·数据库·人工智能·后端·面试
久绊A3 小时前
服务器磁盘只读/故障排
java·linux·服务器
没有bug.的程序员3 小时前
Spring Boot 与 MyBatis-Plus 批量插入的生死狙击
java·spring boot·后端·mybatis·plus·批量插入