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

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

HarmonyOS
2024-03-17 13:57:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
morning_dxm

当前ArkTS创建线程(worker)会创建一个新的ArkTS引擎实例,会占用额外的内存。同时,ArkTS提供了TaskPool并发API,类似GCD的线程池能力,可以执行任务,而且不需要开发者进行线程生命周期管理。Task会被调度到有限数量的工作线程执行,多个task会共享这些工作线程(ArkTS引擎实例),系统会根据负载情况扩容/缩容工作线程的数量,充分发挥硬性性能。

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

将多线程任务转变为并发任务,通过TaskPool分发执行;I/O型任务不需要单独开启线程,而是在当前线程(可以是TaskPool线程)执行;少量需要常驻的CPU密集型任务,采用Worker,并且需要控制在8个及以下。

参考链接

TaskPool和Worker的对比

分享
微博
QQ
微信
回复
2024-03-18 16:51:24
相关问题
HarmonyOS 多线程并发相关问题
162浏览 • 1回复 待解决
应用线程过多如何处理
1842浏览 • 1回复 待解决
事件分发冲突问题如何解决
304浏览 • 1回复 待解决
如何解决底层库无法调试问题
878浏览 • 1回复 待解决
如何解决hdc无法连接真机问题
3519浏览 • 1回复 待解决
HarmonyOS关于多线程问题
351浏览 • 1回复 待解决
HarmonyOS 多线程问题
356浏览 • 1回复 待解决
如何处理推送数量不够用问题
1631浏览 • 1回复 待解决
ArkTs多线程方案如何保证线程安全
2435浏览 • 1回复 待解决
this传递问题,该如何解决
2098浏览 • 1回复 待解决
HarmonyOS toast问题如何解决
640浏览 • 1回复 待解决
如何解决预览流黑屏问题
1058浏览 • 1回复 待解决
如何使用taskpool实现多线程
1027浏览 • 1回复 待解决