- Netty网络编程
- Netty的底层是NIO(非阻塞IO),常用的多线程和线程池使用的是阻塞IO,其效率并不高。
- 支持高并发,性能好
- 高性能的服务端程序、客户端程序
NIO三大组件
一、Channel
读写数据的双向传输通道
常见的传输通道
- FIleChannel 文件传输通道
- DatagramChannel UDP数据传输通道
- SocketChannel TCP数据传输通道,专用于服务器、客户端
- ServerSocketChannel TCP数据传输通道,专用于服务器
二、Buffer
内存缓冲区,用来暂存从channel中读取的数据,也可以将channel中的数据写入Buffer。
常用的Buffer
ByteBuffer,以字节的形式,抽象类:
- MappedByteBuffer
- DirectByteBuffer
- HeapByteBuffer
三、Selector
- Selector配合一个线程来管理多个Channel;
- 获得这些Channel上发生的事件 (可连接,可读,可写);
- Channel工作在非阻塞模式下,不会让线程吊死在一个Channel上;
- 适合连接数多,但流量低的场景