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>

 

posted on 2018-10-30 18:26 人生与戏 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/FlyingLiao/p/9878613.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值