我相信Java的NIO库将在Linux机器上使用epoll。在Linux机器上使用Epoll而不是NIO有什么好处。
Netty的epoll传输使用epoll边缘触发,而java的nio库使用level触发。除此之外,epoll传输公开配置选项,这些选项在java的nio中不存在,如TCP_CORK,SO_REUSEPORT等。
在netty's docs中有一些关于此的信息:
Netty提供以下特定于平台的JNI传输:
Linux (since 4.0.16) MacOS/BSD (since 4.1.11)
与基于NIO的传输相比,这些JNI传输添加特定于特定平台的功能,产生更少的垃圾,并且通常可以提高性能。