BIO NIO AIO 区别

本文介绍了Java中的三种IO模型:BIO(同步阻塞)、NIO(同步非阻塞)和AIO(异步非阻塞)。BIO在调用accept、read、write时会阻塞等待;NIO通过多路复用器实现非阻塞,线程需循环查询事件;AIO则将连接、读写操作交由回调函数处理,主线程可做其他事情。同步异步关注调用事件时是否需要等待,而阻塞非阻塞关注事件是否已发生。注意区分IO模型与线程同步异步、阻塞非阻塞的概念。
摘要由CSDN通过智能技术生成

区别

针对 IO模型

BIO 同步阻塞 线程主动调用accept,read,write (同步),accept,read,write 需要阻塞等待返回结果(阻塞)

NIO 同步非阻塞 线程主动调用死循环询问是否有accept,read,write发生(同步),因为在调用accept,read,write时已经发生事件,所以不会去阻塞等待(基于多路复用器实现)(非阻塞)

AIO 异步非阻塞 主线程不主动调用或轮询,连接、读写是交给回调函数处理,主线程可以做别的事(异步)。而且同样是调用accept,read,write时已经发生事件,所以不会去阻塞等待、读写,所以是非阻塞(非阻塞),NIO也是基于多路复用器,是对NIO的封装

另外:异步阻塞无意义:主线程即阻塞(主动调用),又异步等待回调(不主动调用,做其他事),有冲突,所以没有意义 

总结:在IO模型中:

同步异步     是指调用accept,read,write事件时&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值