zoukankan      html  css  js  c++  java
  • IO模型的比较分析

    到目前为止已经将将四个IO模型都介绍完了。

    那么啊阻塞IO、非阻塞IO、同步IO和异步IO的区别在哪?

    阻塞IO和非阻塞IO的区别

    调用blocking IO会一直block住对应的进程直到操作完成,而non-blocking IO在kernel还准备数据的情况下会立刻返回。

    同步IO和异步IO的区别

    两者的区别就在于synchronous IO做”IO operation”的时候会将process阻塞。


    经过上面的介绍,会发现non-blocking IO和asynchronous IO的区别还是很明显的。

    在non-blocking IO中,虽然进程大部分时间都不会被block,但是它仍然要求进程去主动的check,并且当数据准备完成以后,也需要进程主动的再次调用recvfrom来将数据拷贝到用户内存。

    而asynchronous IO则完全不同,它就像是用户进程将整个IO操作交给了他人(kernel)完成,然后他人做完后发信号通知,在此期间,用户进程不需要去检查IO操作的状态,也不需要主动的去拷贝数据。

  • 相关阅读:
    手动安装cockpit(linux web consol)
    fedora 安装apc smart750 UPS
    windows自动登录和域电脑自动登录域
    docker常用命令
    samba
    ETF:pcf文件制作
    ETF计算公司:现金差额
    ETF参数:现金替代标志
    ETF计算公式:IOPV
    ETF:现金替代标志
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12337952.html
Copyright © 2011-2022 走看看