zoukankan      html  css  js  c++  java
  • 同步、异步、阻塞、非阻塞的简单理解

    一、同步与异步

    先来个概念性的东西:

     同步.异步
    所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,而异步则直接返回

    例子:

    同步:老妈叫小明去烧一壶开水,小明就在旁边等开水开为止。

    异步:小明把那壶水放下去烧,然后没有等待,等烧水响了再过来

    同步异步的区别就是:是否等待返回的结果,同步等待,异步则不等待

    二、阻塞与非阻塞

    概念:

     阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。

    非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

    例子:

    阻塞:老妈叫小明去烧一壶开水,小明就在旁边等开水开为止。(同步:一直关注水壶等待着     阻塞:不能做其他事情);

    非阻塞:小明去烧一壶开水,是否烧开,就去房间打王者荣耀了,(非阻塞:可以干其他事情);水烧开了再出来关了(异步:因为不需要自己去等待)

    阻塞与非阻塞的区别就是:能否做其他事情,阻塞时候,线程被挂起,不能做其他事情,而非阻塞可以

    可以参考:https://www.cnblogs.com/Anker/p/5965654.html

    深入理解可以参考:http://blog.csdn.net/historyasamirror/article/details/5778378

  • 相关阅读:
    fpga不错的源代码下载地址
    iverilog命令选项解释
    altera官方视频教程下载地址
    niosII EDS和QuartusII安装心得体会
    FPGA的JTAG口很脆弱?
    poj2379
    poj2472
    poj2935
    poj3366
    poj1493
  • 原文地址:https://www.cnblogs.com/imfjj/p/8066393.html
Copyright © 2011-2022 走看看