同步阻塞、同步非阻塞IO模型

3f961aa24ef866eb38b5dffc27ecc4778a7.jpg

 

6706823c2d187d6bd0006ccad09dc4267ce.jpg

 

 

5451d0ea19c9beb8a4d675b06e6ba9187a7.jpg

同步阻塞IO模型是最简单的模型,用户线程在内核进行IO操作时被阻塞

用户线程通过操作系统调用read发起IO读操作,由用户空间转到内核空间。内核等到数据包到达后,然后将接受的数据拷贝到用户空间,完成read操作

用户需要等待read将数据读取到buffer后,才继续处理接收数据的数据。整个IO请求的过程中,用户线程是被阻塞的,这导致用户在发起IO请求时,不能做任何事情,对cup 的利用率不高。

33a0fcd12de67ec42cccdd75a1a6de777ee.jpg

用户线程发起IO请求时立即返回,但并未读取到任何数据,用户线程需要不断地发起IO请求,直到数据到达后,才真正读取到数据,继续执行。即“轮询”机制

整个IO请求的过程中,虽然用户线程每次发起IO请求后可以立即返回,但是为了等到数据,仍需要不断的轮询、重复请求,消耗了大量的CPU的资源

是比较浪费CPU的方式,一般很少直接使用这种模型,而是在其他IO模型中使用非阻塞IO这一特性

转载于:https://my.oschina.net/huangguangsheng/blog/2231195

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值