儿子该如何找老子要钱------浅聊linux中的5种I/O模型并顺便说说异步和非阻塞的区别

        某儿子在上大学, 经济还不能独立, 经常向老子要钱。 有的时候, 儿子没有直接向老子要钱, 而是先嗅探式地问问老子是否有钱, 然后再伺机开口要, 也是蛮聪明的哈。

 

        我们来看看, 儿子要钱的几种方式:

        1.  如图:同步, 阻塞地要钱

             儿子 = 用户进程

             老子 = linux内核

             要钱 =  recv

 

 

        2. 如图:同步, 非阻塞地要钱

 

             儿子 = 用户进程

             老子 = linux内核

             要钱 =  recv

             妈的,还在准备 = EWouldBlock

       

 

        3. 如图:同步, 刺探性地要钱

 

             儿子 = 用户进程

             老子 = linux内核

             有钱吗?= select

             要钱 =  recv

       

        4.  用得不多, 本文先不说。

 

        5. 如图: 异步要钱

 

             儿子 = 用户进程

             老子 = linux内核

             要钱 = aio_read

             通知儿子拿到钱 =  发送消息, 触发回调函数

 

       在linux中, 有5中I/O模型, 分别与上述五种要钱方式对应, 也即是:

       1. 同步, 阻塞IO            ------ 儿子要焦急等待老子准备钱, 焦急等待拿到钱

       2. 同步, 非阻塞IO        ------ 儿子立即知道是否有钱, 但要反复催要, 焦急等待拿到钱

       3. 同步, 多路复用IO    ------  儿子要焦急等待老子准备钱, 焦急等待拿到钱

       4. 同步, 信号驱动IO    ------  本文先不说

       5. 异步IO                        ------ 儿子立即知道是否有钱, 也不用焦急等待拿到钱, 而是边泡妞, 边等待老子汇钱, 两全其美

 

       好的, 先说到这里了, 想必大家对五种IO模型, 异步和非阻塞的区别有所了解了。 实际上, 在非阻塞模式中, 第一个过程是非阻塞的, 第二个过程是阻塞的, 所以, 总体体现为阻塞, 这就有点同步的感觉了。

 

       本文就先扯淡到这里, 后续我们会进行更深入的分析, 到时再一起嗨奋斗

       就这样。

 

 

 

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值