zoukankan      html  css  js  c++  java
  • 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函数,那么事件的循环是一个先进先出的任务队列,那么回调就按照他们被加入队列的顺序来执行。

  • 相关阅读:
    scrapy入门
    xpath的基本使用
    xpath 的用法
    线程同步
    Round #336 A. Saitama Destroys Hotel(Div.2)
    hdoj 1166 敌兵布阵(线段树and树状数组)
    hdoj 1873 看病要排队
    hdoj 2289 Cup
    hdoj 2689 Sort it
    hdoj 1150 Machine Schedule
  • 原文地址:https://www.cnblogs.com/mcray/p/6659127.html
Copyright © 2011-2022 走看看