应该如何设计大量线程并发方案

应该如何设计大量线程并发方案

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

系统采用ArkTS作为开发语言,由于底层线程模型对接了libuv,因此在应用进程启动后,会有多个I/O线程用于I/O操作。JS线程的I/O异步操作,会在I/O线程执行,JS线程可以同时执行其他操作,不存在阻塞等待问题。同时,ArkTS提供了TaskPool并发API,类似GCD的线程池能力,可以执行任务,而且不需要开发者进行线程生命周期管理。因此针对需要大量线程的问题,开发建议如下:

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

参考链接

TaskPool和Worker的对比

已于2024-3-17 22:40:06修改
分享
微博
QQ
微信
回复
2024-03-17 22:39:51
相关问题
组合索引应该如何设计
778浏览 • 1回复 待解决
ArkTs多线程方案如何保证线程安全
414浏览 • 1回复 待解决
postgresql 大量数据的统计问题?
680浏览 • 2回复 待解决
TaskPool子线程和主线程如何通信
136浏览 • 1回复 待解决
ListContainer加载大量数据白屏并且卡UI
3402浏览 • 1回复 待解决
如何判断当前线程是否是主线程
237浏览 • 1回复 待解决
TaskPool线程内存如何共享
192浏览 • 1回复 待解决
Worker线程内存如何共享
181浏览 • 1回复 待解决
如何选择图文混排的实现方案
152浏览 • 1回复 待解决
如何实现多线程数据共享
209浏览 • 1回复 待解决
repo连不上应该怎么解决
5939浏览 • 1回复 待解决
应用分类应该怎么选择?
3196浏览 • 2回复 待解决