BIO\NIO\AIO说明

Node node = null;
Node node1 = node;
node1 = new Node(10);
System.out.println(node.value);
node对象之间赋值后,对赋值后的对象进行赋值,null对象不会发生变化

MQ的主要目的是: 缓解消息堆积压力(生产快,消费慢),消息不及时,消息没有连续性(没有session)
netty/mina: 长连接,存在session

BIO: 同步阻塞形式 NIO: 同步非阻塞形式 AIO(NIO2.0): 异步非阻塞
同步和异步: 同步和异步一般是面向操作系统与应用程序对IO操作的层面上来区别的
同步时,应用程序会直接参与IO读写操作,并且我们的应用程序会直接阻塞到某一个方法上,直到数据准备就绪;或者采用轮训的策略实时检查数据的就绪状态,如果就绪则获取数据
异步时,则所有的IO读写操作交给系统处理,与我们的应用程序没有直接关系,程序不需要关心IO读写,当操作系统完成了IO读写操作时,会给应用程序发送通知,应用程序直接拿走数据即可

NIO: Buffer Channel Selector(选择器,多路复用器)
Buffer: pos(位置) limit(容量) capacity(上限)
Channel:与流不同之处在于通道是双向的,而流则是一个方向上移动。通道分为两大类,一类是网络读写(SelectableChannel),一类是文件操作(FileChannel),SocketChannel和ServerSocketChannel都是SelectableChannel的子类
Selector: 一个多路复用器可以负责成千上万Channel通道,没有上限。jdk使用epoll代替了传统的select实现,获得连接句柄没有限制。也就意味着只要一个线程负责selector的轮询,就可以介入成千上万的客户端

AIO: 在NIO的基础上引入了异步通道的概念,并提供了异步文件和异步套接字的实现,从而真正意义上实现了异步非阻塞。NIO只是非阻塞而非异步,而AIO它不需要通过多路复用器对注册的通道进行轮询操作即可实现异步读写,从而简化NIO编程模型,也称为NIO2.0
AsynchronousServerSocketChannel
AsynchronousSocketChannel
AIO比NIO的优势:
1、 accept、write、read异步
2、 代码简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值