Netty--BIO、NIO、AIO模型

例子说明BIO与NIO的区别:

在一家幼儿园里,小朋友有上厕所的需求,小朋友都太小以至于你要问他要不要上厕所,他才会告诉你。幼儿园一共有100个小朋友,有两种方案可以解决小朋友上厕所的问题:

  1. 每个小朋友配一个老师。每个老师隔段时间询问小朋友是否要上厕所,如果要上,就领他去厕所,100个小朋友就需要100个老师来询问,并且每个小朋友上厕所的时候都需要一个老师领着他去上,这就是BIO模型,一个连接对应一个线程。
  2. 所有的小朋友都配同一个老师。这个老师隔段时间询问所有的小朋友是否有人要上厕所,然后每一时刻把所有要上厕所的小朋友批量领到厕所,这就是NIO模型,所有小朋友都注册到同一个老师,对应的就是所有的连接都注册到一个线程,然后批量轮询。

摘录自:https://www.jianshu.com/p/a4e03835921a

BIO:同步阻塞型:原生java io模型(JDK1.4之前),对服务器资源要求比较高,并发局限于应用中,程序简单易理解。

Netty--BIO、NIO、AIO模型_第1张图片

NIO:同步非阻塞型:netty,适用于连接数多且连接比较短的应用

Netty--BIO、NIO、AIO模型_第2张图片

Netty--BIO、NIO、AIO模型_第3张图片

AIO:异步非阻塞型:也叫NIO.2,JKD7开始支持。适用于连接数多且连接比较长的应用。和操作系统联系密切,目前应用不广泛

你可能感兴趣的:(Netty,BIO,NIO)