zoukankan      html  css  js  c++  java
  • 同步,异步和 阻塞,非阻塞

    阻塞和非阻塞,同步和异步是node.js里经常遇到的词汇,我举个简单的例子来说明:

    我要看足球比赛,但是妈妈叫我烧水,电视机在客厅,烧水要在厨房。家里有2个水壶,一个是普通的水壶,另一个是水开了会叫的那种水壶。我可以:

    1. 用普通的水壶烧,人在边上看着,水开了再去看球。(同步,阻塞)这个是常规做法,但是我看球不爽了。
    2. 用普通水壶烧,人去看球,隔几分钟去厨房看看。(同步,非阻塞)这个又大问题,万一在我离开的几分钟水开了,我就麻烦了。
    3. 用会叫的水壶,人在边上看着。(异步,阻塞)这个没有问题,但是我太傻了。
    4. 用会叫的水壶,人去看球,听见水壶叫了再去看。(异步,非阻塞)这个应该是最好的。

    等着看球的我:阻塞

    看着电视的我:非阻塞

    普通水壶:同步

    会叫的水壶:异步

    所以,异步往往配合非阻塞,才能发挥出威力。

    还可以这么说

    阻塞:就相当于单线程的,一个任务有多个小任务组成,只有上一个任务完成后,下一个任务才能继续进行,

    非阻塞:相当于多线程,一个任务由多个小任务组成,当一个任务没有完成时,其他任务不受影响。

    同步:

    某个时间或时间段内只能做一件事

    异步:

    某个时间或时间段内能同时做多个事情

  • 相关阅读:
    【解题报告】CF939E
    【解题报告】洛谷P4653 [CEOI2017]Sure Bet
    【解题报告】洛谷P3406 海底高铁
    【解题报告】洛谷P1097 统计数字
    微信开发者工具下载和安装
    STS下载和安装
    HBuilderX下载和安装
    Navicat Premium下载与安装
    PLSQL下载和安装
    Oracle 11g的安装
  • 原文地址:https://www.cnblogs.com/chosenone/p/9246357.html
Copyright © 2011-2022 走看看