Netty 与三种 I/O 模式

半世苍凉 提交于 2020-04-29 14:23:28

Netty 与三种 I/O 模式

经典的三种 I/O 模式

生活场景:

当我们去饭店吃饭时:

  • 食堂排队打饭模式:排队在窗口,打好才走;
  • 点单/等待被叫模式:等待被叫,好了自己去端;
  • 包厢模式:点单后菜直接被端上桌。
image-20200428170716650

Netty 对三种 I/O 模式的支持

image-20200428170829642

为什么 Netty 仅支持 NIO 了?

image-20200428170857393

为什么 Netty 有多种 NIO 实现?

image-20200428170940202

通用的 NIO 实现(Common)在 Linux 下也是使用 epoll,为什么自己单独实现?

实现的更好!

  • NIO 暴露了更多的可控参数,例如:
    • JDK 的 NIO 默认实现是水平触发。
    • Netty 是边缘触发(默认)和水平触发可切换。
  • Netty 实现的垃圾回收更少、性能更好。

NIO 一定优于 BIO 吗?

  • BIO 代码简单。
  • 特定场景:连接数少,并发度低,BIO 性能不输 NIO。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!