当前位置: 首页 > article >正文

鸿蒙开发异步与线程

鸿蒙对于异步提供了三种处理方式(注意这里是异步,不是特指线程):

1.JS原生的Promise异步

2.taskPool线程

3.worker常驻线程

Promise异步

对于我们做 Android开发,经常提到异步,就习惯性的认为是起个子线程来执行。但是当我们做鸿蒙开发时候,要注意Promise异步和线程两个概念不同。

1.Promise异步仍然是在当前线程中运行任务,结果以异步方式返回(接口回调方式)

2.当我们对某个方法定义为Promise异步执行,那么当前线程就会在空闲时候执行当前方法,结果以异步方式返回

对比Promise,taskPool和worker

1.对于单次IO,非阻塞性任务,可以使用Promise

2.对于UI刷新频繁的场景,不推荐使用Promise执行一些耗时逻辑,可能会造成UI刷新卡顿或者Promise逻辑无法得到执行

3.对于IO密集型任务,非常驻任务,建议使用taskPool执行。控制好时间,不要超过3分钟

4.对于常驻任务,使用worker

5.对于耗时,阻塞任务使用worker

6.使用Promise时候不需要考虑多线程问题,使用worker和taskPool时候,如果对文件进行写操作,注意多线程问题。


http://www.kler.cn/a/412340.html

相关文章:

  • macos 14.0 Monoma 修改顶部菜单栏颜色
  • IntelliJ IDEA 中,自动导包功能
  • 5.Feign与ReflectiveFeign
  • 常见线程安全问题之复合操作
  • 枚举类在数据库的存储方式类型对应的是什么
  • Fakelocation Server服务器/专业版 ubuntu
  • 使用Cmake导入OpenCV库的大坑记录
  • 如何将 GitHub 私有仓库(private)转换为公共仓库(public)
  • 反爬虫机制
  • 【大数据学习 | Spark-SQL】SparkSession对象
  • 从ETL到DataOps:WhaleStudio替代Informatica,实现信创化升级
  • 计算机网络 实验八 应用层相关协议分析
  • 【NOIP普及组】表达式求值
  • 学习threejs,设置envMap环境贴图创建反光效果
  • Qt程序发布及打包成exe安装包
  • 微信小程序首页搜索框的实现教程
  • idea_常用设置
  • RSA算法和AES算法,哪种更安全
  • 电脑自动关机时间如何定?Wise Auto Shutdown 设置关机教程
  • C++网络编程:select IO多路复用及TCP服务器开发
  • 三格电子—EtherNet IP转Modbus RTU网关
  • Docker安装及常用命令
  • 信息安全实验--密码学实验工具:CrypTool
  • Rust学习(九):密码生成器
  • QT:生成二维码 QRCode
  • AIGC学习笔记(7)——AI大模型开发工程师