• HTTP概念进阶


    HTTP概念进阶

     

    一、什么是回调

    回调是异步编程时的基础,将后续逻辑封装在回调函数中作为起始函数的参数,逐层嵌套,通过这种方式让程序按照我们所期望的方式执行。
    function say(something){  //定义回调函数
    console.log(something);
    }
    function me(callback,something){ //做为参数传递
    something += ' is cool';
    callback(something);
    }
    me(say,'Ray');
    me(function(something){ //使用匿名函数
    console.log(something);
    },'ms');

    二、什么是同步/异步

    同步指的是:发送方发出数据后,等待接收方发回响应才能发送下一个数据包的通讯方式。程序的执行顺序与任务的排列顺序是一致的。
    var c = 0;
    function printS(){
    console.log(c);
    }
    function plus(){
    c += 1;
    }
    plus();
    printS(); //1 结果为1  程序按照顺序执行
    异步是指:发送方发出数据后,不等待对方发回响应,接着发送下一个数据包的通讯方式。程序的执行顺序与任务的排列顺序不是一致的,是异步的,在JS中两个异步函数setTimeout()setInterval()
    var c = 0;
    function printS(){
    console.log(c);
    }
    function plus(){
    setTimeout(function(){
    c += 1;
    },1000);
    }
    plus();
    printS(); //0 结果为0 程序为异步执行

    三、什么是单线程和多线程

    一次只能执行一个程序叫做单线程
    一次能执行多个程序叫做多线程

    四、什么是IO

    磁盘的写入、磁盘的读取就是数据的进和出,就是IO。

    五、什么是阻塞/非阻塞

    阻塞:前一个进程没有执行完就一直占用着CPU的资源,其他进程一直处于等待的过程。
    非阻塞:前一个进程没有执行完时可以挂起,继续执行其他进程,等到使用时再执行。

    六、什么是事件

    事件就是一个触发动作,比如点击按钮

    七、什么是事件驱动

    事件驱动就是一个触发动作引起的操作

    八、什么是基于事件驱动的回调

    为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回调函数,这种函数执行的方式叫做事件驱动,这种注册回调就是基于事件驱动的回调。

    九、什么是事件循环

    管理大量异步操作的机制叫做事件循环。Event Loop是回调函数队列,异步执行的函数会被压入这个队列,队列会被循环查询。

    对于nodejs来说靠一个单线程不断的查询队列中是否有事件,当他读取到一个事件的时候,将调用与这个事件相关的JavaScript函数,那么事件的循环是一个先进先出的任务队列,那么回调就按照他们被加入队列的顺序来执行。

    参考: https://www.cnblogs.com/mcray/p/6659127.html

  • 相关阅读:
    Linux Shell 01 脚本与变量
    Linux下shell颜色配置
    Linux下Redis安装及配置
    Linux Shell 03 条件测试
    OSX下VirtualBox安装CentOS
    Log4j配置与使用
    Linux 环境变量的配置
    OS X下安装Redis及配置开机启动
    圈复杂度
    (转)Qt Model/View 学习笔记 (一)——Qt Model/View模式简介
  • 原文地址:https://www.cnblogs.com/Antwan-Dmy/p/10692135.html
Copyright © 2020-2023  润新知