位置: 编程技术 - 正文

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)

  • 固定资产折旧会计处理
  • 项目税后现金流量的计算方法
  • 计提附加税税会计分录
  • 增值税应纳税额的计算
  • 以个人名义汇货要交税吗
  • 预缴增值税后隔多久缴纳
  • 预提费用在资产负债表里写在哪
  • 补贴收入企业所得税
  • 保证金利息收入怎么算
  • 发票多开了一张怎么处理?
  • 小型微利企业申请
  • 外币借款业务的会计分录还款时利息
  • 企业所得税的征税对象包括
  • 公司注销实收资本可以退回股东吗?
  • 自产的产品无偿赠送职工
  • 哪些是非累计带薪缺勤?
  • 计提成本会计分录怎么做
  • 增值税发票系统怎么升级
  • 这个月发票领完了,还可以领吗?
  • 建筑业简易计税税率
  • 单位发的奖金怎样交个税
  • 图书对方开具的证明
  • 衍生金融资产属于投资性资产吗
  • 小型微利企业怎么认定最新标准
  • 树木种植公司
  • 定额发票收入怎么样确定
  • 在php中,字符串有哪些表示形式
  • 营改增后哪些费用可以抵扣
  • php设计思路
  • 发票抵扣条件
  • 为什么微信转账不成功
  • 员工出差机票计入什么科目
  • 先预付货款,货到了怎么做账
  • 2020注册谷歌账号方法
  • list删除某个元素 python
  • 事业单位员工工资
  • 个税申报不成功,累计减除费用60000审核不通过
  • 分公司发生的业务,开票给总公司
  • 怎么实现宏的功能
  • 机关单位差旅费
  • 融资交易的会计处理
  • 残疾人就业保障金上年职工工资总额
  • 工资单应该盖什么章
  • 长期股权投资为什么不是金融资产
  • 金税盘要交税吗
  • 外贸常用的付款方式有哪些
  • 应税销售额什么意思
  • 现金核算如何进行账务处理
  • 退休返聘人员工伤怎么赔偿
  • 手工账登账格式
  • 国际货运代理免增值税
  • 所得税暂缓缴纳本来是不缴纳
  • 收银系统入库入错了怎么办
  • 增值税减免税款计入什么科目
  • 企业应交税金包括印花税吗
  • 营改增账务处理实例
  • win7系统设置打印机共享
  • win7组织在哪
  • fedora最新版
  • 电脑出现系统状态
  • win7资源管理器频繁崩溃
  • windows xp.
  • xp调出输入法
  • centos配置网络地址命令
  • centos 安装
  • c盘越来越小了
  • linux怎么禁用用户
  • w7提高开机速度
  • 32/64位Win10预览版11102(中英日韩等)多国语言包官方iso镜像下载大全
  • android开启adb
  • ios平台中glsl中shadow2DProjEXT函数的简单说明以及变换矩阵的小注意点
  • 网页设计需要多少分辨率
  • Node.js中的事件循环是什么
  • js html css
  • javascript中的107个基础知识收集整理 推荐
  • jsonobject用法
  • python调用ch
  • 装卸搬运费属于
  • 税务部门行政审批
  • 曲靖注册公司要哪些条件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设