1、(20191212)查到的一些资料:java从 JDK7开始 引入AOI(即 NIO2)。然后 实现 IOCP使用的是 AsynchronousChannelGroup、AsynchronousServerSocketChannel相关的内容。
ZC:据说 AsynchronousChannelGroup 在Windows下使用的是 IOCP,在 Linux下使用的还是 NIO那一套 只是在NIO上又套了一层 假装AIO。
ZC:查到 Netty至今使用的 还是 NIO(具体原因,几点我记住的是:A、异步IO和Netty原本的架构不配套 改成AIO那一套的话 会4不像;B、不注重Windows上的使用;... ...)
1.1、测试了一下,貌似 JDK 8u202 上的也是阉割版的IOCP?
PS:<<Windows网络与通信程序设计>>上C++版的IOCP 可以投递多个accept操作,然后 一个socket可以投递多个接收操作(查官网 WSARecv 做重叠IO操作 貌似就可以对同一个socket投递多个接收缓冲)
用 java的AsynchronousChannelGroup 简单测试了一下,accept操作 只能投递一个,接收操作 也只能投递一个...
具体报错 如下:
2、
3、
4、
5、
原文:https://www.cnblogs.com/javaskill/p/12030117.html