美文网首页
异步同步/阻塞非阻塞

异步同步/阻塞非阻塞

作者: 你喜欢吃青椒吗_c744 | 来源:发表于2019-07-27 17:05 被阅读0次

什么是同步和异步

说到烧水,我们都是通过热水壶来烧水的。在很久之前,科技还没有这么发达的时候,如果我们要烧水,需要把水壶放到火炉上,我们通过观察水壶内的水的沸腾程度来判断水有没有烧开。随着科技的发展,现在市面上的水壶都有了提醒功能,当我们把水壶插电之后,水壶水烧开之后会通过声音提醒我们水开了。对于烧水这件事儿来说,传统水壶的烧水就是同步的,高科技水壶的烧水就是异步的。

  • 同步请求,A调用B,B的处理是同步的,在处理完之前他不会通知A,只有处理完之后才会明确的通知A。
  • 异步请求,A调用B,B的处理是异步的,B在接到请求后先告诉A我已经接到请求了,然后异步去处理,处理完之后通过回调等方式再通知A。
  • 所谓同步,就是在发出一个"调用"时,在没有得到结果之前,该“调用”就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由“调用者”主动等待这个“调用”的结果。而异步则是相反,"调用"在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在"调用"发出后,"被调用者"通过状态、通知来通知调用者,或通过回调函数处理这个调用。

什么是阻塞和非阻塞

还是那个烧水的例子,当你把水放到水壶里面,按下开关后,你可以坐在水壶前面,别的事情什么都不做,一直等着水烧好。你还可以先去客厅看电视,等着水开就好了。对于你来说,坐在水壶前面等就是阻塞的,去客厅看电视等着水开就是非阻塞的。

  • 阻塞请求,A调用B,A一直等着B的返回,别的事情什么也不干。
  • 非阻塞请求,A调用B,A不用一直等着B的返回,先去忙别的事情了。

阻塞、非阻塞和同步、异步的区别

其实乍一看,同步和阻塞不是一样的吗?异步和非阻塞不是一样的吗?

  • 阻塞、非阻塞说的是调用者,同步、异步说的是被调用者。
  • 阻塞和非阻塞指的是在等待/不等待的人本身。
  • 同步和异步指的是水壶本身。

同步场景中包含阻塞和非阻塞

在这篇文章中,同步代表着传统的水壶。

  • 在同步的情况下阻塞,即在水烧开之前我们一直坐在水壶前面,等着水开。
  • 在同步的情况下非阻塞。在水烧开之前我们先去客厅看电视了,但是水壶不会主动通知我们,需要我们时不时的去厨房看一下水有没有烧开。

异步场景中包含阻塞和非阻塞

异步代表着的是高科技水壶。

  • 在异步的情况下阻塞。在水烧发出提醒之前我们一直坐在水壶前面,等着水开。
  • 在异步的情况下非阻塞。在水烧发出提醒之前我们先去客厅看电视了,等水壶发出声音提醒我们。

前端使用异步的场景有哪些?

  • 定时任务:setTimeout,setInterval
  • 网络请求:ajax请求,动态<img>加载
  • 事件绑定

一个异步的例子/var let

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        for (let  i = 0; i <= 5; i++) {
     setTimeout(function() {
         console.log( i );
     }, i*1000);
      console.log( ' i : ' , i );
 }
 
//  console.log( i ); 
// var let 互换   
    </script>
</body>
</html>

参考文章

相关文章

  • 谈论:同步异步阻塞非阻塞.md

    同步/异步:关注的方式(是否主动) 阻塞/非阻塞: 同步阻塞BIO: 同步非阻塞NIO: 异步非阻塞: 异步阻塞:

  • UNIX 的5种IO模型介绍

    IO模型同步、异步、阻塞、非阻塞socket阻塞与非阻塞,同步与异步 同步和异步 同步/异步主要针对C端-同步就像...

  • BIO NIO AIO

    BIO:同步阻塞IONIO:同步非阻塞IOAIO:异步非阻塞IO先弄清楚同步、异步,阻塞、非阻塞概念。 io操作分...

  • 阻塞非阻塞 同步异步 IO模型及其应用 NIO实现原理

    1.同步异步概念 2.阻塞非阻塞概念 3.常见I/O模型:同步阻塞IO,同步非阻塞IO,异步阻塞IO,异步非阻塞I...

  • IO模型

    原文参考链接 四种状态 同步 异步 阻塞 非阻塞 IO分类 同步阻塞IO 同步非阻塞IO 异步非阻塞IO注意: 没...

  • 阻塞,非阻塞,同步,异步

    阻塞,非阻塞,同步,异步

  • 同步、异步、阻塞、非阻塞,这下明白了

    同步阻塞,同步非阻塞,异步阻塞,异步非阻塞... 晕! 头! 转! 向! 对于小白来说,理解这些概念太难了。搜索这...

  • I/O模型

    一般来说I/O模型可以分为:同步阻塞,同步非阻塞,异步阻塞,异步非阻塞IO 同步阻塞IO:在此种方式下,用户进程在...

  • 并发、并行、同步、异步、阻塞、非阻塞

    并发 并行 同步 异步 阻塞 非阻塞

  • Java IO

    Before IO 分为:同步、异步阻塞、非阻塞 同步和异步是目的,阻塞和非阻塞是实现方式。 一个IO操作其实分成...

网友评论

      本文标题:异步同步/阻塞非阻塞

      本文链接:https://www.haomeiwen.com/subject/jyrerctx.html