zoukankan      html  css  js  c++  java
  • 异步与同步简析

    异步与同步

    概念

    异步任务相当于现实生活中的同步,在日常生活中,我们要烧水,可以在烧水的时候煮饭做菜。等水开了,再去灌水(后面这句是回调)
    同步任务则是,必须完成这件事,才能做下一件事,这件事做不完,就做不了下一件事。比如,你还没写完作业,而恰巧你的小伙伴来找你完,你的父母就和你说,写完作业才能出去玩。那能怎么办呢,只能先写完作业,才能出去玩。
    还有一个例子,就是打游戏通关,这个游戏通过了第一关才能打第二关,这就是同步。
    开了个会员,第一关没通过,就先通其它关,之后再回来通第一关,这就是异步。

    同步异步的区分

    记住,定时器(setTimeOut),网络请求(ajax),事件监听(addEventListener)都是异步的
    ajax虽然可以改写成同步的,但禁止使用

    回调

    例子

    function f1(){}
    function f2(){
         fn()
    }
    f2(f1)
    分析:
          1. 我没有调用f1
          2. 我把f1传给了f2
          3. f2调用了f1
          4. f1是我写给f2调用的函数
    结论:f1是回调
    

    异步与回调的关系

    1. 异步任务需要用到回调函数来通知结果
    2. 回调函数不一定只用在异步任务里,也可用于同步任务,比如arr.forEach(i => console.log(i))就是同步回调

    注意:
    每个函数都有return,有的没写return,就默认返回undefined

  • 相关阅读:
    Javascript面向对象编程(三):非构造函数的继承
    zabbix java api
    Hbase架构与原理
    Hbase集群监控
    kafka使用场景
    Java curator操作zookeeper获取kafka
    Docker网络基础:快速指南
    JPA Advanced Mappings(映射)
    9.Spark Streaming
    7.spark共享变量
  • 原文地址:https://www.cnblogs.com/silent-cat/p/14152076.html
Copyright © 2011-2022 走看看