五种网络通讯的IO模型

本文介绍了Java中Bio阻塞式IO和NIO非阻塞式IO的区别,强调了NIO的核心思想——面向缓冲区和IO多路复用。通过IO多路复用,一个线程可以处理多个不同的TCP连接,降低了CPU资源的占用,并确保线程安全性。文章还简述了非阻塞式IO的代码实现。
摘要由CSDN通过智能技术生成

阻塞式: 当我们没有获取到数据的时候,整个应用会产生阻塞,放弃了CPU执行,无法去做其他事情。

非阻塞式:不管是否获取到数据,都立马必须告诉一个结果,如鬼没有获取到数据的情况下返回一个错误标记。根据错误的标记不断的进行轮训。

Bio就是一个阻塞式的

引入nio操作:java语言在jdk1.4版本推出一个 IO方案,就是对原来的BIO(阻塞式IO)实现了优化。

核心思想:面向缓冲区,基于通道实现非阻塞式IO,多路IO复用实现(选择器)

Bio与nio的区别

Bio是一个阻塞式的io.它是面向与流传输也就是跟据每个字节实现传输,效率非常低。而NIO是面向与缓冲区的非租塞式 IO,其中最大的亮点是IO多路复用机制。

IO多路复用原理:多路实际指的是多个不同的tcp连接,复用:一个线程可以维护多个不同的IO操作。好处:占用cpu资源非常小,保证线程安全问题。

我们来用代码实现下:

非租塞式代码演示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值