IO模型 | 相對性能 | 關鍵思路 | 操作系統 | JAVA支持 |
---|---|---|---|---|
select | 較高 | Reactor | windows/Linux | 支持,Reactor模式(反應器設計模式)。Linux操作系統的kernels 2.4內核版本之前,默認使用select;而目前windows下對同步IO的支持,都是select模型。 |
poll | 較高 | Reactor | Linux | Linux下的JAVA NIO框架,Linux kernels 2.6內核版本之前使用poll進行支持。也是使用的Reactor模式。 |
epoll | 高 | Reactor/Proactor | Linux | Linux kernels 2.6內核版本及以後使用epoll進行支持;Linux kernels 2.6內核版本之前使用poll進行支持;另外一定注意,由於Linux下沒有Windows下的IOCP技術提供真正的異步IO支持,所以Linux下使用epoll模擬異步IO。 |
kqueue | 高 | Proactor | Liinux | 目前Java版本不支持 |