zoukankan      html  css  js  c++  java
  • 同步和异步

    一、同步和异步

    1、同步
    同步是一条直线上的队列,调用者和被调用者串行执行,同步需要等待返回结果才能继续。

    一个任务连续执行。

    2、异步
    异步不是一条直线上的队列,各走各的。调用者与被调用者并行执行,异步不必等待,一般需要监听异步的结果。

    一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段。

    二、同步调用,异步调用,回调

    同步调用是一种阻塞式调用,必须等待上一个任务完成,这样容易浪费系统资源;
    异步调用是一种类似消息或事件的机制,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方;
    var pf = function (num) {
        console.log('print: ',num);
    };
    pf(1111);
    setTimeout(function () {
        pf(2222);
    }, 2000);
    pf(3333);
    // -----结果-----
    // print:  1111
    // print:  3333
    // print:  2222
    回调是一种双向调用,被调用方在接口被调用时也会调用对方的接口。在等待某一件事情完成之后,再运行一个函数,回调可以弥补异步函数的缺点,能够让异步函数同步执行
    var data = [];
    setTimeout(function (){
        data.push(1);
    },2000);
    console.log(data[0]);
    // 结果
    // undefined
    var data = [];
    var cb = function(){
        console.log(data[0]);
    };
    var pushData =  function(callback){
        data.push(1);
        callback();
    };
    setTimeout(function () {
        pushData(cb);
    },2000);
  • 相关阅读:
    POI简单初识 Demo (资源来自网络本人属于收藏总结)
    spring学习笔记(6)装配Bean 的种类和区别 【资源来自网络 版权非本人】
    springboot相关
    前沿技术Hyperledger
    MAC版的IDEA快捷键
    JSONObject put,accumulate,element的区别
    1027
    position窗口居中
    http 请求详解大全
    关于Spring注解
  • 原文地址:https://www.cnblogs.com/camille666/p/sys_ays.html
Copyright © 2011-2022 走看看