阻塞与非阻塞,同步与异步

Java的IO有三种:IO、NIO、AIO

第一种是Java刚开始就出现的IO即BIO(同步阻塞IO),我们一般常说的IO就是这种IO,这种IO相对来说比较简单,基于流模型,提供一种IO操作。交互方式是同步、阻塞,调用的顺序是线性顺序,这种IO有一个好处就是,代码简单,但是缺点就是IO的效率较低、扩展性不好。

在Java1.4后,出现了NIO(同步非阻塞IO),提供了Channel、Buffer、Selector等新的抽象。可以构建多路复用的同步非阻塞IO。

在Java1.7后,出现了NIO2即AIO,引入了异步非阻塞的IO,基于事件和回调机制。

同步与非同步的区别:

同步是一种可靠的有序运行机制,当我们在进行同步操作的时候,后续的任务等待当前任务的返回,才能进行下一步。而异步则不同,其他的任务不用等待当前任务的返回,依靠事件与回调机制来实现任务的次序关系。

阻塞与非阻塞的区别:

当线程处于阻塞状态时,无法从事其他任务,只有当条件准备就绪才可以。而非阻塞状态不管IO是否结束,直接返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值