zoukankan      html  css  js  c++  java
  • 12.nodejs事件轮询机制

    一:nodejs事件轮询机制  就是  函数的执行顺序

    <script type="text/javascript">
    
            setImmediate(function(){
                console.log('setImmediate()');
            });
            setTimeout(function(){
                console.log('setTimeout()');
            },0);
            process.nextTick(function(){
                console.log('process.nextTick()');
            });
    
            /*
             process.nextTick()
             setTimeout()
             setImmediate()
            */
            /*
                nodejs的事件轮询机制:借助libuv库实现的
                概括事件轮询机制,分为6个阶段:
                    1、timers 定时器阶段
                       计时和执行到点的定时器回调函数
                    2、pending callbacks
                       某些系统操作(例如TCP错误类型) 的回调函数
                    3、idle,prepare
                        准备工作
                    4、poll轮询阶段(轮询队列) (顺序)
                        如果轮询队列不为空,依次同步取出轮询队列中第一个回调函数,直到轮询队列为空或达到系统最大的限制
                        如果轮询队列为空
                            如果之前设置过setImmediate函数
                                直接进入下一个check阶段
                            如果之前没有设置过setImmediate函数
                                在当前poll阶段等待
                                    直到轮询队列添加回调函数,就去第一个情况执行
                                    如果定时器到点了,也会去下一个阶段
                     5、check查阶段
                        执行setImmediate设置的回调函数
                     6、close callbacks 闭关阶段
                        执行close事件回调函数
    
             process.nextTick 能在任意阶段优先执行 
             */
    </script>
  • 相关阅读:
    Math类操作数据
    java之静态方法与非静态方法
    使用Date和SimpleDateFormat类表示时间
    Java 中基本类型和字符串之间的转换
    Python基础
    生成对抗网络
    机器翻译
    语义角色标注
    个性化推荐
    词向量
  • 原文地址:https://www.cnblogs.com/FlyingLiao/p/9878613.html
Copyright © 2011-2022 走看看