ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] # netty为什么没用AIO 官方说法性能不行 记得好像是在4.0.16被移除了(要么是17),反正短暂存在过几个小版本 而且对于IOCP这个东西,如果你试过用Java原生的AIO接口来实现,你会发现,如果JVM进程被强制结束,可能会导致一些奇怪的驱动级的错误,需要在Windows中手动处理这个错误,否则整个网络都会失效 AIO也有相关限制 * 首先,AIO在实际读取内容之前需要一个缓冲区,因此如果连接了很多并行客户端,读取必须以某种方式受到限制。 * AIO在给定的执行器上运行完成处理程序。因此,如果执行程序有多个线程,可能会在不同的线程上调用处理程序,这会破坏netty的精彩线程模型。但它基本上很简单:netty中的每个事件循环都会使用单线程执行程序运行自己的AsynchronousChannelProvider 然后是 * Not faster than NIO (epoll) on unix systems (which is true) * There is no daragram suppport * Unnecessary threading model (too much abstraction without usage) 相关issue: https://github.com/netty/netty/issues/2515