位置: 编程技术 - 正文

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)

  • 计提印花税会计分录
  • 企业购入固定资产在每期末应使用公允价值法进行计量
  • 跨年增值税专用发票没有认证,需要开红字信息表吗
  • 股东分红需要开股东会决定吗?
  • 小企业会计准则调整以前年度费用分录
  • 信息技术费如何做账
  • 企业内部转账应注意什么
  • 固定资产原值错误的账务处理
  • 研发技术服务属于什么费用
  • 贸易型出口退税流程
  • 可转换债券转股时股价高于转换价格
  • 去年的成本没有入账
  • 销售退回 账务处理
  • 银行属于个人吗
  • 进项税额转出需要发票吗
  • 金税三期个人客户端在哪下载
  • 电子税务局报表打印在哪里
  • 营改增后如何纳税
  • 资产总计与负债和所有者权益总计不一致
  • 银行端查询缴税凭证在哪里缴费
  • 增值税做账做错怎么处理
  • 如何修改系统时间为12/24小时制
  • 业务招待费扣除基数的收入包括哪些
  • 公司换基本户需要多久
  • 厂区道路施工步骤
  • php连接sqlserver2008
  • 其他生活服务业增值税税率
  • 企业自建房需要交哪些税
  • window10黑白模式
  • 计提坏账可以冲回吗
  • php网站结构
  • nginx静态文件服务器
  • php时间戳转换中国标准时间
  • 小企业法人怎么交社保
  • php自定义字段
  • php下载文件夹
  • css中的hover属性
  • Diffusion models代码实战:从零搭建自己的扩散模型
  • ps使用背景橡皮擦的时候需要按住什么键
  • phpcms默认密码
  • 营业执照上有劳务派遣还需要办其他手续吗
  • 改造后的固定资产入账价值
  • sql server 2008数据库没有备份文件恢复
  • 农副产品增值税发票怎么开
  • 中小型企业营业额和从业人数
  • 小规模纳税人怎么申报增值税报表
  • 合作社分红计入什么科目
  • 存货跌价准备确认
  • 建筑工程和建筑装饰工程的区别
  • 会计中制造费用包括哪些内容
  • 可供分配的利润是什么意思
  • 设备租金收入计什么科目
  • 公司车辆交强险怎么网上买
  • 金融存款利率
  • 用友薪资管理怎么取消启用
  • 住房贷款利息专项附加扣除怎么用
  • 财务费用中的汇兑损益和汇兑收益的区别
  • 为什么规定视同销售?
  • 勘探费用会计分录
  • 期末自动结转期间损益
  • 营业外收入属于借方还是贷方
  • sqlserver2000数据库安装教程
  • 在MySQL中同时查找两张表中的数据的示例
  • sql语句分号
  • windows进程数
  • vistaie9安装所需更新补丁
  • windows route metric
  • windowmsgserver32是什么
  • winmysqladmin.exe - winmysqladmin进程是什么意思
  • vsftpd配置用户登录目录
  • windows1021h2更新
  • linux安装步骤
  • python计算ndvi
  • js 箭头表达式
  • javascriptjs
  • Android 获取网络时间
  • 置顶怎么折叠起来
  • cocos2d安装
  • 股权转让税务备案时间
  • 苏州汇川和深圳汇川那个好
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设