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>
  • 相关阅读:
    oracle函数 MAX([distinct|all]x)
    oracle函数 MAX([distinct|all]x)
    oralce函数 count(*|[distinct|all]x)
    oracle函数 VARIANCE([distinct|all]x)
    oralce函数 STDDEV([distinct|all]x)
    oracle函数 SUM([distinct|all]x)
    oralcle函数 AVG([distinct|all]x)
    oracle函数 lag()和lead()
    oracle函数 ROW_NUMBER()
    Linux性能测试 netstat命令
  • 原文地址:https://www.cnblogs.com/FlyingLiao/p/9878613.html
Copyright © 2011-2022 走看看