位置: 编程技术 - 正文

node.js中的定时器nextTick()和setImmediate()区别分析(node定时任务框架)

编辑:rootadmin

推荐整理分享node.js中的定时器nextTick()和setImmediate()区别分析(node定时任务框架),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node 定时器,node.js 定时任务,node.js中的定时功能,node.js 定时任务,node.js中的定时功能,node.js 定时任务,node.js中的定时功能,node.js中的定时功能,内容如对您有帮助,希望把文章链接给更多的朋友!

1.node中使用定时器的问题在于,它并非精确的.譬如setTimeout()设定一个任务在ms后执行,但是在9ms后,有一个任务占用了5ms,再次轮到定时器时,已经耽误了4ms.

好了node中的定时器就简单的讲这么多.

2.看代码:

通过这个例子,我想大家很清楚的就能看到nextTick()是用来干嘛的了.主要是用来异步执行的.

在看代码:

我们发现setImmediate也是异步执行的.奇怪了

那么它与nextTick()有什么区别呢&#;

看代码:

node.js中的定时器nextTick()和setImmediate()区别分析(node定时任务框架)

代码一:

结果:

代码二:

结果:

发现代码虽然顺序不一样,但是执行的结果是一样的.

从结果可以发现:

nextTick()的回调函数执行的优先级要高于setImmediate();

process.nextTick()属于idle观察者,setImmediate()属于check观察者.在每一轮循环检查中,idle观察者先于I/O观察者,I/O观察者先于check观察者.

在具体实现上,process.nextTick()的回调函数保存在一个数组中,setImmediate()的结果则是保存在链表中.在行为上,process.nextTick()在每轮循环中会将数组中的回调函数全部执行完.而setImmediate()在每轮循环中执行链表中的一个回调函数.

从执行结果上看出:当第一个setImmediate()的回调函数执行完后,并没有立即执行第二个,而是进入了下一轮循环,再次按nextTick()优先,setImmediate()次后的顺序执行.之所以这样设计,是为了保证每次循环能够较快的执行结束.防止CPU占用过多而阻塞后续I/O调用的情况.

标签: node定时任务框架

本文链接地址:https://www.jiuchutong.com/biancheng/374256.html 转载请保留说明!

上一篇:node.js操作mongoDB数据库示例分享(node.js操作文件)

下一篇:为什么Node.js会这么火呢?Node.js流行的原因(node.js wss)

  • 增值税销项进项什么意思
  • 房产企业季度预测
  • 预算收入包括增值税吗
  • 向境外支付赔偿金需要发票么
  • 微信转账报销怎么转换成文字
  • 持有待售资产是流动资产吗
  • 劳务有预付款吗
  • 必胜客发票提取码在小票哪里
  • 普通发票,供货怎么开
  • 捐赠支出和赞助支出的区别
  • 会计科目的使用说明应包括
  • 北京增值税纳税申报表在哪里打印
  • 会计利润和税务利润不一致
  • 预估材料入账后冲回的步骤
  • 中小企业社保优惠延长政策
  • 建筑行业一般纳税人税率是多少
  • 如何将货物卖出去
  • 工会经费的开支必须取得发票么
  • 企业押金怎么管理
  • 清理备用金
  • 已发货未开票的货物需要结转成本吗
  • 竣工决算调整入库流程
  • 建筑工程账务处理是在哪个阶段
  • 公司购车要交哪些税
  • 房地产企业预缴增值税如何申报
  • 企业开票附加税
  • 完税证明和纳税申报表是一种东西吗
  • 股权无偿赠与协议书范本
  • fpp是什么文件
  • java.exe进程可以关掉吗
  • 第一部塞班手机
  • 住房公积金领出来用了影响以后买房贷款吗
  • 芬兰东部的国家有哪些
  • 以其他方式取得土地使用权
  • php数组函数有哪些
  • 如何写煎荷包蛋过程
  • 微信小程序授权管理在哪里
  • 研发样品收入的最新规定
  • 生育保险断缴后果
  • 帝国cms使用手册
  • 计税工资什么意思2019
  • 企业内部控制的概念
  • 个体工商户营业执照注销流程
  • 捐赠的增值税可以抵扣吗
  • 建筑业无票收入收货款分录
  • 什么叫转让财产收入
  • 劳务分包预缴税款计算公式
  • 预收账款和预付账款怎么理解
  • 房地产结转收入的条件
  • 公司给员工转公司
  • 印花税减免退回会计分录
  • 目前哪些费用不能抵扣
  • 软件测试费用明细
  • 无形资产投资入股是否缴纳企业所得税
  • 施工赔偿款怎么记账
  • 小企业会计怎么做账
  • windows安装mysql5.7详细步骤
  • mysql 5.7.13 winx64安装配置教程
  • linux 软件 安装
  • win8中文版是什么版本
  • ubuntu configure
  • macbookair自带系统
  • win8.1 build9600
  • 微软被告
  • win7如何获取管理员密码
  • 在linux系统中创建文件的命令
  • nodejs的应用场景和优缺点
  • 怎么把perl删除干净
  • 批处理文件自动登录远程桌面
  • shell的变量分为哪三种
  • python字符串的编码规则
  • macbookair安卓系统怎么切换到苹果
  • python读写文件wr
  • 关于车辆购置税的申报与缴纳下列说法正确的有
  • 社保已经申报成功未缴费在哪交费
  • 天津生育津贴如何查询申请进度
  • steam 申请
  • 销售哪些产品需要基金从业资格证?
  • 发票明细怎么导入开票系统里
  • 舆论与舆情之间的关系是怎样的?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设