HarmonyOSCPU与IO密集型任务开发指导

最后编辑时间:2024-02-19 07:08:55 来源:未知 作者:未知 阅读量: 未知

  CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行。例如图像处理、

  当进行一系列同步任务时,推荐使用Worker;而进行大量或调度点较为分散的独立任务时,不方便使用8个Worker去做负载管理,推荐采用TaskPool。接下来将以图像直方图处理以及后台长时间的模型预测任务分别进行举例。

  创建Task,通过execute()执行任务,在当前任务结束后,会将直方图处理结果同时返回。

  本文通过某地区提供的房价数据训练一个简易的房价预测模型,该模型支持通过输入房屋面积和房间数量去预测该区域的房价,模型需要长时间运行,房价预测需要使用前面的模型运行结果,因此需要使用Worker。

  5. 在Worker线程中通过调用onmessage()方法接收宿主线程发送的消息内容,并通过调用postMessage()方法向宿主线程发送消息。

  6. 在Worker线程中完成任务之后,执行Worker线程销毁操作。销毁线程的方式主要有两种:根据需要可以在宿主线程中对Worker线程进行销毁;也可以在Worker线程中主动销毁Worker线程。

  方式一:在宿主线程中通过调用terminate()方法销毁Worker线程,并终止Worker接收消息。

  方式二:在Worker线程中通过调用close()方法主动销毁Worker线程,并终止Worker接收消息。

  使用异步并发可以解决单次I/O任务阻塞的问题,但是如果遇到I/O密集型任务,同样会阻塞线程中其它任务的执行,这时需要使用多线程并发能力来进行解决。

  I/O密集型任务的性能重点通常不在于CPU的处理能力,而在于I/O操作的速度和效率。这种任务通常需要频繁地进行磁盘读写、网络通信等操作。此处以频繁读写系统文件来模拟I/O密集型并发任务的处理。

  2. 使用TaskPool执行包含密集I/O的并发函数:通过调用execute()方法执行任务,并在回调中进行调度结果处理。示例中的filePath1和filePath2的获取方式请参见获取应用文件路径。

  人工智能学习1. 人工智能应用场景网络安全、电子商务、计算模拟、社交网络 … …2. 人工智能必备三要素数据,算法,计算力计算力之

  南——LoadingView组件1.LoadingView组件功能介绍1.1.功能介绍:LoadingView组件是一个可以显示加载动画的三方组件,目前支持4种风格

  UI的同时,后台也能执行耗时操作,从而避免应用出现卡顿。 并发能力在多种场景中都有应用,其中包括单次

  南上线啦! /

  南上线! /

  使用PSoC4 CY8C4248LQI-BL583在初步add file进行编译的时候报错怎么解决?

  请问为什么我在使用ADAU1452芯片时,数字信号通过SDATA_IN2然后从SDATA_OUT2输出时使用AP采集这两端的THD+N的值不对呢?

(责任编辑:管理)

随机内容