BIO/NIO/AIO
BIO—同步阻塞
在Jdk1.4之前,用Java编写网络请求都是建立在一个ServerSocket上,然后客户端简历Socket时会询问是否有线程可以处理:如果没有,要么拒绝,要么等到
- 一个连接,要求Server对应一个处理线程
NIO—同步非阻塞
Jdk1.4之后新加入的网络编程jar包
在java.nio包及其子包内
基于事件驱动思想来完成的,其主要想解决的是BIO大并发问题
NIO基于Reactor设计模式,当socket有流可读或可写入socket时,操作系统会相应的通知应用程序进行处理,应用程序再将流读取到缓冲区/写入操作系统
AIO—异步非阻塞
对于读操作而言,当有流可读取时,操作系统会将可读的流传入read方法的缓冲区,并通知应用程序
对于写操作而言,当操作系统将write方法传递的流写入完毕时,操作系统主动通知 应用程序
在Jdk1.7中被引入AIO,被称作NIO.2,主要在java.nio.channels中