bio:同步阻塞
nio:同步非阻塞,类似异步执行同步返回。适合连接数量大,但传输数据量不大的,因为要将数据排列整合。不能乱,数据量大太耗时间。(例如视频流就不适合)
tomcat本身是多线程的,但是内部执行的时候是要一个个来的。(tomcat默认bio)nio
例子1:
bio服务端.
bio 客户端1:连接服务端后,延迟发送一条数据。(先)
bio 客户端2:连接服务端后,不延迟发送一条数据。(后)
在服务端打印数据:客户端1的数据先打印,客户端2的数据后打印。
nio服务端.
nio 客户端1:连接服务端后,延迟发送一条数据。(先)
nio 客户端2:连接服务端后,不延迟发送一条数据。(后)
在服务端打印数据:客户端2的数据先打印,客户端1的数据后打印。
例子2:
bio在读取文件的时候,是要上一次读取完,才会读取下面的数据。
nio是可以上一次没有读取完,会接着上面的继续读取数据,当然在传输的适合,会排列整合好,不会将数据乱掉。