文档管理中心

如何解决应用需要避免开辟过多线程,并发处理任务数量受限,无法充分发挥设备性能的问题

当前ArkTS创建线程(worker)会创建一个新的ArkTS引擎实例,占用额外内存。ArkTS还提供了TaskPool并发API,类似于GCD的线程池功能,可以执行任务,无需开发者管理线程生命周期。Task会被调度到有限数量的工作线程上执行,多个Task共享这些工作线程(ArkTS引擎实例)。系统会根据负载情况动态调整工作线程的数量,充分发挥硬件性能。

针对需要大量线程的问题,开发应用时建议如下:

将多线程任务转换为并发任务,并通过TaskPool进行分发执行;I/O型任务无需单独开启线程,而是在当前线程(可以是TaskPool线程)中执行;对于少量需要常驻的CPU密集型任务,采用Worker,并且数量应控制在64个以内。

参考链接

TaskPool和Worker的对比 (TaskPool和Worker)

搜索
请输入您想要搜索的关键词