askPool运作机制
图1 TaskPool运作机制示意图
TaskPool支持开发者在主线程封装任务抛给任务队列,系统选择合适的工作线程,进行任务的分发及执行,再将结果返回给主线程。接口直观易用,支持任务的执行、取消。工作线程数量上限为4。
鸿蒙OS开发 | 更多内容↓点击 | HarmonyOS与OpenHarmony技术 |
---|---|---|
鸿蒙技术文档 | 开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md 在这。 | 或+mau123789学习,是v喔 |
Worker运作机制
图2 Worker运作机制示意图
创建Worker的线程称为宿主线程(不一定是主线程,工作线程也支持创建Worker子线程),Worker自身的线程称为Worker子线程(或Actor线程、工作线程)。每个Worker子线程与宿主线程拥有独立的实例,包含基础设施、对象、代码段等。Worker子线程和宿主线程之间的通信是基于消息传递的,Worker通过序列化机制与宿主线程之间相互通信,完成命令及数据交互。
本文参考引用HarmonyOS官方开发文档,基于API9。
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Worker
+关注
关注
0文章
8浏览量
6452 -
鸿蒙
+关注
关注
57文章
2306浏览量
42736
发布评论请先 登录
相关推荐
鸿蒙OS开发实例:【ArkTS类库多线程@Concurrent装饰器校验并发函数】
在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。
鸿蒙OS开发实例:【ArkTS类库多线程CPU密集型任务TaskPool】
CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。
基于多线程并发机制处理CPU密集型任务可以提高CPU
鸿蒙OS开发案例:【ArkTS类库多线程CPU密集型任务Worker】
通过某地区提供的房价数据训练一个简易的房价预测模型,该模型支持通过输入房屋面积和房间数量去预测该区域的房价,模型需要长时间运行,房价预测需要使用前面的模型运行结果,因此需要使用Worker。
鸿蒙原生应用开发-ArkTS语言基础类库多线程并发概述
的功能,它允许在不同的进程间传递对象的引用,使得不同进程之间可以共享对象的状态和方法,服务提供者必须继承此类。
二、TaskPool和Worker
ArkTS提供了TaskPool和
发表于 03-28 14:35
鸿蒙原生应用开发-ArkTS语言基础类库多线程TaskPool和Worker的对比(三)
是不同的,因此TaskPool工作线程只能使用线程安全的库,例如UI相关的非线程安全库不能使用。
发表于 03-27 16:26
鸿蒙APP开发:【ArkTS类库多线程】TaskPool和Worker的对比
TaskPool(任务池)和Worker的作用是为应用程序提供一个多线程的运行环境,用于处理耗时的计算任务或其他密集型任务。可以有效地避免这些任务阻塞主线程,从而最大化系统的利用率,降
鸿蒙原生应用开发-ArkTS语言基础类库多线程TaskPool和Worker的对比(二)
TaskPool运作机制
图1 TaskPool运作机制示意图
TaskPool支持开发者在主线程封装任务抛给任务队列,系统选择合适的工作
发表于 03-26 15:25
鸿蒙原生应用开发-ArkTS语言基础类库多线程TaskPool和Worker的对比(一)
TaskPool(任务池)和Worker的作用是为应用程序提供一个多线程的运行环境,用于处理耗时的计算任务或其他密集型任务。可以有效地避免这些任务阻塞主线程,从而最大化系统的利用率,降
发表于 03-25 14:11
鸿蒙原生应用开发-ArkTS语言基础类库多线程并发概述
的功能,它允许在不同的进程间传递对象的引用,使得不同进程之间可以共享对象的状态和方法,服务提供者必须继承此类。
二、TaskPool和Worker
ArkTS提供了TaskPool和
发表于 03-22 15:40
鸿蒙原生应用开发-ArkTS语言基础类库多线程I/O密集型任务开发
filePath2 = ...;
// 使用TaskPool执行包含密集I/O的并发函数
// 数组较大时,I/O密集型任务任务分发也会抢占主线程,需要使用多线程能力
发表于 03-21 14:57
鸿蒙原生应用开发-ArkTS语言基础类库多线程CPU密集型任务TaskPool
CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。
基于多线程并发机制处理CPU
发表于 03-19 14:14
鸿蒙原生应用开发-ArkTS语言基础类库多线程@Concurrent装饰器校验并发函数
在使用TaskPool时,执行的并发函数需要使用该装饰器修饰,否则无法通过相关校验。从API version 9开始,该装饰器支持在ArkTS卡片中使用。
装饰器说明
装饰器使用示例
import
发表于 03-18 10:30
鸿蒙原生应用开发-ArkTS语言基础类库概述
ArkTS语言基础类库是HarmonyOS系统上为应用开发者提供的常用基础能力,主要包含能力如下图所示。
1.提供异步并发和多线程并发的能
发表于 03-05 15:42
评论