同步异步:多线程调用时 其他线程是否阻塞。
阻塞非阻塞:当前线程是否阻塞。
BIO(同步阻塞):用户进程发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后,用户进程才能运行。JAVA传统IO模型属于此种方式。
NIO(同步非阻塞):用户进程发起一个IO操作后便可返回做其他事情,但是用户进程需要时不时的询问IO操作是否就绪。目前JAVA的NIO数据此种方式。
AIO(异步非阻塞):应用发起一个IO操作以后,不等待内核IO操作的完成,等内核完成IO操作后会通知应用程序。
场景分析
BIO适用于连接数小且固定的架构,jdk1.4以前的唯一选择
NIO适用于连接数多且比较短的架构
AIO使用连接数多且比较长的架构