位置: 编程技术 - 正文

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)

  • 出口退税无纸化备案怎么弄
  • 房地产开发公司排名
  • 销售购物取得的收入
  • 员工出差的餐补计入什么科目
  • 报销费用明细和发票
  • 出售投资性房地产时,按其账面价值结转到主营业务成本
  • 合作社免税收入需要成本吗?
  • 金税盘无法连接jk开票
  • 电子税务局助信码领取后怎么用
  • 工资发放凭证由谁出具
  • 发生销售退回如何开票
  • 接受虚开增值税 经侦立案
  • 收到采购商品
  • 新办企业汇算清缴流程
  • 承兑汇票打折支付如何账务处理?
  • 收到老板给的购房发票
  • 出租房屋房产税怎么算
  • 税局代个人开增值税专票
  • 审核发票的要素
  • 开具发票时提示离线发票累计金额超限?教你如何处理
  • 如何辩别这样发票的真伪?
  • 什么是税收编码,在哪里查
  • 应收账款确认无法收回
  • 加工费可以计入管理费用吗
  • 增值税专用发票查询系统官方网站
  • 工会经费怎么申报,多久报一次
  • 花语大全各种花的花语花树
  • PHP 中dirname(_file_)讲解
  • dir852迅雷路由器
  • 前端框架view
  • 羽毛球脚踝扭伤怎么办
  • PHP:imagesetpixel()的用法_GD库图像处理函数
  • php实验报告
  • 流动资产占总资产比重多少较为合适
  • golang char
  • 个体户一直未申报会怎样
  • 试运行收入会计分录
  • 财务费用的具体内容
  • 劳务费发票怎么入账
  • 单位收的房租可以发工资吗
  • c语言fseek函数
  • mongodb分片技术
  • asp和asp net
  • 汇算清缴需要做账吗
  • 网银可以给个人转账
  • 增值税税款抵扣
  • 售后回购会计处理分录
  • 如何开具通用电子发票
  • 内账的账务处理
  • 通货膨胀溢价的英文
  • 月未转出未交增值税
  • 未确认融资费用借贷方向
  • 开票系统服务费计入什么费用
  • 股权转让中土地要否缴纳增值税
  • sql not in 与not exists使用中的细微差别
  • macbookpro双系统和虚拟机
  • win7删除windows.old
  • potplayer win7
  • switpa.exe - switpa是什么进程
  • Win7旗舰版系统文件名称
  • Linux操作系统软链接和硬链接的联系与区别
  • centos6.2安装教程
  • centos7安全
  • win10系统打不开此电脑和文件夹
  • Win7中TrustedInstaller.exe进程占用内存高该怎么解决?
  • 如何判断电脑是不是linux
  • win7怎么设置自动开机时间
  • perl ne
  • android真机调试解析包错误
  • Eclipse开发工具安装
  • 批处理文件自动登录远程桌面
  • jquery自动完成插件
  • 泛型类泛型接口泛型方法
  • vue父子组件传值props
  • 咨询服务类公司的账务处理
  • 换发票需要交钱吗
  • 税务稽查证据问题
  • 国税和地税分别交什么税
  • 企业卖旧房如何计算缴纳土地增值税
  • 企业税收怎么收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设