位置: 编程技术 - 正文

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)

  • 应补退税额较少是什么意思
  • 购买产品再出售怎么入账
  • 应付款为什么是负数
  • 残疾人保障金的计算方法
  • 公司注销银行公户怎么注销
  • 工会经费计提多了跨年
  • 固定资产超过注册资金怎么处理
  • 不动产抵扣进项税
  • 进项税额转出补交税金会计分录
  • 房地产增值税发票有什么用
  • 购进二手办公设备如何进行入账?
  • 半成品成本核算 一般企业怎么核算
  • 劳务公司差额开票的方式有哪些
  • 境内企业转让境外股权税收
  • 残疾人收到房租租赁发票收入还要缴纳个税吗
  • 员工一次性赔偿怎么算
  • 旅行社代订住宿发票能报销吗
  • 人工成本如何申报个税
  • 小规模纳税人纳税申报时间
  • 建筑企业结转成本依据准则
  • 住房公积金是否全国联网
  • 独生子女补贴怎么查询
  • 支付商业保险费属于什么现金流量项目
  • 存续在业有什么区别
  • 无生产怎样结转成本费用
  • KB5004296无法安装,提示错误代码:0x800f0990的解决方法
  • 现金结算起点包括1000元吗
  • php教程全集
  • 融资租赁的固定资产所有权归谁
  • php模拟post提交
  • vue3路由守卫 微信授权登陆
  • centos7搭建http
  • Navicat for MySQL 15 v15.0.27 中文企业正式版(附安装教程) 32/64位 破解版
  • 计提本月财务费用会计分录
  • 注销对公账户要去原支行吗
  • 个人独资企业怎么注销
  • 诉讼费发票丢失可以补开吗
  • 股权对价支付
  • 织梦如何添加浮动广告
  • 库存现金借方发生额怎么计算
  • 善意取得增值税专用发票
  • 边际贡献总额计算公式边际贡献率
  • 非三包退车能否退款
  • 累计折旧会影响净残值吗
  • 公司收到注册资本金需要做哪些呢
  • 商品削价的核算
  • 预缴增值税后期如何处理
  • 商品流通企业应交那些税费
  • 初级会计计划成本例题
  • 用友怎么取消月结
  • 应交增值税进项税额月底怎么处理
  • 其他综合收益要转入投资收益吗
  • 增值税税款多缴纳还能退回吗
  • 公司购轿车会计分录怎么做
  • 建账基本要求
  • mysql tmp_table_size和max_heap_table_size大小配置
  • ROW_NUMBER SQL Server 2005的LIMIT功能实现(ROW_NUMBER()排序函数)
  • 利用rpm安装软件包时,应使用命令选项
  • mysql 的replace into实例详解
  • centos的命令
  • centos怎么安装
  • win7笔记本任务管理器
  • 如何给windowsXP磁盘加密码
  • win7系统怎么设置电源
  • windows10 14393版本
  • win7 u盘启动按哪个键
  • 如何将windows 10
  • bat批处理命令大全
  • 不得不佩服自己的搞笑说说
  • 批处理列出文件名
  • python3 pygame
  • python class类型
  • threejs 源码
  • 不使用flash
  • 第一章阎王点卯的小说名字
  • 国税系统公务员政审父母超生合格吗
  • 江西省电子税务局官网app
  • 闵行税务稽查局
  • 深圳北站哪里取纸质票
  • 为什么我电脑登微信显示二维码失效
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设