zoukankan      html  css  js  c++  java
  • 五种I/O模型介绍

    IO 多路复用是5种I/O模型中的第3种,对各种模型讲个故事,描述下区别:

    故事情节为:老李去买火车票,三天后买到一张退票。参演人员(老李,黄牛,售票员,快递员),往返车站耗费1小时。

    1.阻塞I/O模型

    老李去火车站买票,排队三天买到一张退票。

    耗费:在车站吃喝拉撒睡 3天,其他事一件没干。

    2.非阻塞I/O模型

    老李去火车站买票,隔12小时去火车站问有没有退票,三天后买到一张票。

    耗费:往返车站6次,路上6小时,其他时间做了好多事。

    3.I/O复用模型

    1.select/poll

    老李去火车站买票,委托黄牛,然后每隔6小时电话黄牛询问,黄牛三天内买到票,然后老李去火车站交钱领票。 

    耗费:往返车站2次,路上2小时,黄牛手续费100元,打电话17次

    2.epoll

    老李去火车站买票,委托黄牛,黄牛买到后即通知老李去领,然后老李去火车站交钱领票。 

    耗费:往返车站2次,路上2小时,黄牛手续费100元,无需打电话

    4.信号驱动I/O模型

    老李去火车站买票,给售票员留下电话,有票后,售票员电话通知老李,然后老李去火车站交钱领票。 

    耗费:往返车站2次,路上2小时,免黄牛费100元,无需打电话

    5.异步I/O模型

    老李去火车站买票,给售票员留下电话,有票后,售票员电话通知老李并快递送票上门。 

    耗费:往返车站1次,路上1小时,免黄牛费100元,无需打电话

    1同2的区别是:自己轮询

    2同3的区别是:委托黄牛

    3同4的区别是:电话代替黄牛

    4同5的区别是:电话通知是自取还是送票上门

  • 相关阅读:
    导入myeclipse项目出现的问题及解决方案
    sqlserver允许远程连接的配置
    Microsoft SQL Server,附加数据库 错误:Error 916解决方法
    [svc]linux常用手头命令-md版-2017年11月12日 12:31:56
    [elk]es增删改查最佳实战
    [docker]docker日志驱动记录nginx日志情形探究
    [js]面向对象2
    [js]面向对象1
    [js]js中函数传参判断
    [k8s]k8s-ceph-statefulsets-storageclass-nfs 有状态应用布署实践
  • 原文地址:https://www.cnblogs.com/u013533289/p/11687823.html
Copyright © 2011-2022 走看看