arkts使用taskPool开启多线程

187 阅读1分钟

taskPool介绍

任务池(taskpool)作用是为应用程序提供一个多线程的运行环境,降低整体资源的消耗、提高系统的整体性能,且您无需关心线程实例的生命周期。您可以使用任务池API创建后台任务(Task),并对所创建的任务进行如任务执行、任务取消的操作。理论上您可以使用任务池API创建数量不受限制的任务,但是出于内存因素不建议您这样做。此外,不建议您在任务中执行阻塞操作,特别是无限期阻塞操作,长时间的阻塞操作占据工作线程,可能会阻塞其他任务调度,影响您的应用性能。

说明:
本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import taskpool from '@ohos.taskpool';

编写测试代码

image.png 需要在开启多线程的函数上添加@Concurrent装饰器,接着调用taskpool.execute开启多线程

Index.ets测试代码

import { test } from '../common/taskPool'


@Entry
@Component
struct Index {
  async onPageShow(): Promise<void> {
    for (let i=0;i<5;i++){
      test()
    }

  }
  build() {
    Column(){

    }
      .width('100%')
      .height('100%')
  }
}

测试成功

image.png