zoukankan      html  css  js  c++  java
  • 同步异步阻塞学习

    同步就是多个事物不能同时开工

    异步就是多个事物可以同时开工

    所谓阻塞,指的是阻碍堵塞。它的本意可以理解为由于遇到了障碍而造成的动弹不得。

    所谓非阻塞,自然是和阻塞相对,可以理解为由于没有遇到障碍而继续畅通无阻

    I/O:

    IO指的就是读入/写出数据的过程,和等待读入/写出数据的过程。一旦拿到数据后就变成了数据操作了,就不是IO了。

    拿网络IO来说,等待的过程就是数据从网络到网卡再到内核空间。读写的过程就是内核空间和用户空间的相互拷贝。

    所以IO就包括两个过程,一个是等待数据的过程,一个是读写(拷贝)数据的过程。而且还要明白,一定能包括操作数据的过程。

    两两组合


    所谓同步/异步,关注的是能不能同时开工。

    所谓阻塞/非阻塞,关注的是能不能动。

    通过推理进行组合:

    同步阻塞,不能同时开工,也不能动。只有一条小道,一次只能过一辆车,可悲的是还TMD的堵上了。

    同步非阻塞,不能同时开工,但可以动。只有一条小道,一次只能过一辆车,幸运的是可以正常通行。

    异步阻塞,可以同时开工,但不可以动。有多条路,每条路都可以跑车,可气的是全都TMD的堵上了。

    异步非阻塞,可以工时开工,也可以动。有多条路,每条路都可以跑车,很爽的是全都可以正常通行。

    是不是很容易理解啊。其实它们的关注点是不同的,只要搞明白了这点,组合起来也不是事儿。

    回到程序里,把它们和线程关联起来:

    同步阻塞,相当于一个线程在等待。

    同步非阻塞,相当于一个线程在正常运行。

    异步阻塞,相当于多个线程都在等待。

    异步非阻塞,相当于多个线程都在正常运行。

    参见:https://www.cnblogs.com/lixinjie/p/10811219.html

  • 相关阅读:
    Dell PowerEdge服务器RAID卡驱动下载
    Cent OS yum 安装 Adobe flash player
    如何在安全模式下创建新管理员账户?
    chkdsk 和sfc.exe修复命令
    右下角弹出"Windows-延缓写入失败"或者"xxx-损坏文件 请运行Chkdsk工具"
    VMware NAT模式 Cent OS IP配置
    sublime Text2 2.0.2 build 2221 64位 破解(已测试)
    Windows Server 2008 R2 配置Exchange 2010邮件服务器
    openGL深度缓冲区问题
    glRotatef 转动方向
  • 原文地址:https://www.cnblogs.com/tiancaige/p/11156286.html
Copyright © 2011-2022 走看看