位置: 编程技术 - 正文

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)

  • 增值税先征后退会计处理
  • 现金股利缴纳个人所得税
  • 衍生工具和非衍生工具怎么区分
  • 开技术服务费发票怎么做账
  • 小微企业免税计入什么科目
  • 土地增值税申报流程
  • 银行按揭方式销售开发产品
  • 签了合同没开票
  • 购买固定资产进项税率
  • 发票没认证可以作废吗?
  • 先进制造业企业按照当期可抵扣进项税额
  • 采购商品验收入库流程
  • 某企业原材料采用实际成本核算,2019年6月
  • 开红字增值税专用发票步骤
  • 自有房产墙面出租,需要缴纳房产税吗?
  • 电梯的运行与维护
  • 公司发票限额按什么计算
  • 企业所得税能否核定征收
  • 土地在会计中怎么处理
  • 企业的应付账款确实无法支付,经确认后转作
  • 运费计入采购成本会计分录
  • 在同一预缴地有多个项目的建筑业纳税人总销售额以什么为标准确定?
  • 开票的增值税与附加税
  • 基建工程施工单位罚款如何做账?
  • 什么是应收
  • 季度资产总额怎么填写
  • 不良资产购买流程
  • 行纪人的权利
  • 上年结转的广告费次年怎么入账
  • 抵扣给供货商预缴税款
  • qtzgacer.exe - qtzgacer进程是什么文件 .作用是什么
  • 库存现金清查主要包括哪些内容
  • 用php做计算
  • 悬崖边上的门
  • vue下载安装
  • laravel 日志配置
  • php 查找数组元素
  • vue组件引入外部js
  • php取值
  • 若依框架使用教程
  • 资产负债表中其他流动资产包括哪些科目
  • web前端面试题最新
  • cvpr best
  • springmvc常见问题
  • react脚手架搭建项目
  • 自建自用 房产税
  • 为什么其他权益工具投资不计提减值准备
  • 房屋租赁可以开具住宿费发票吗
  • 期末调整汇兑损益计算
  • 会计计入其他业务收入的有哪些
  • 融资租赁有免租金吗
  • 现金发放工资会扣税吗
  • 收取水电费计入什么科目
  • mongodb reactive
  • sql将一个表中的值赋给另一个表
  • mysql Event Scheduler: Failed to open table mysql.event
  • 装饰公司购入材料税额会计分录
  • 企业第四季度是什么时候
  • 防疫物资采购会计处理
  • 其他综合收益属于什么科目借贷
  • 采购未取得发票怎么结转成本
  • 固定资产清理是资产吗
  • mysql5.7.17下载
  • 安装vista
  • win1 开机启动
  • Win10 Mobile 14393.321终于修复Lumia636/638导航栏遮挡
  • win10怎么关闭windowsdefender
  • 默认终端地址
  • centos 网卡顺序
  • 怎么设置pe系统
  • Win7系统打开文件夹没有自动排列选项
  • windowsxp怎么卸载
  • Extjs grid panel自带滚动条失效的解决方法
  • 分形图形学
  • jquery插件怎么用到自己的网站
  • unity 移动应用开发
  • CA证书如何办理?
  • 四川省国家税务局官网
  • 调研基本情况介绍范文
  • 公司收购农民的农产品能贴我公司标签吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设