网站悬浮窗代码,网站建设文化信息,淘宝网网页版登陆网址,网站建设与管理的主要内容CPU密集型任务是指需要占用系统资源处理大量计算能力的任务#xff0c;需要长时间运行#xff0c;这段时间会阻塞线程其它事件的处理#xff0c;不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。
基于多线程并发机制处理CPU密集型任务可以提高CPU利用率#x… CPU密集型任务是指需要占用系统资源处理大量计算能力的任务需要长时间运行这段时间会阻塞线程其它事件的处理不适宜放在主线程进行。例如图像处理、视频编码、数据分析等。
基于多线程并发机制处理CPU密集型任务可以提高CPU利用率提升应用程序响应速度。
当进行一系列同步任务时推荐使用Worker而进行大量或调度点较为分散的独立任务时不方便使用8个Worker去做负载管理推荐采用TaskPool。接下来将以图像直方图处理以及后台长时间的模型预测任务分别进行举例。
使用TaskPool进行图像直方图处理
1.实现图像处理的业务逻辑。
2.数据分段将各段数据通过不同任务的执行完成图像处理。
3.创建Task通过execute()执行任务在当前任务结束后会将直方图处理结果同时返回。
结果数组汇总处理。
鸿蒙开发应用知识已更新gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md参考前往。 import taskpool from ohos.taskpool;Concurrent
function imageProcessing(dataSlice: ArrayBuffer) {// 步骤1: 具体的图像处理操作及其他耗时操作return dataSlice;
}function histogramStatistic(pixelBuffer: ArrayBuffer) {// 步骤2: 分成三段并发调度let number pixelBuffer.byteLength / 3;let buffer1 pixelBuffer.slice(0, number);let buffer2 pixelBuffer.slice(number, number * 2);let buffer3 pixelBuffer.slice(number * 2);let task1 new taskpool.Task(imageProcessing, buffer1);let task2 new taskpool.Task(imageProcessing, buffer2);let task3 new taskpool.Task(imageProcessing, buffer3);taskpool.execute(task1).then((ret: ArrayBuffer[]) {// 步骤3: 结果处理});taskpool.execute(task2).then((ret: ArrayBuffer[]) {// 步骤3: 结果处理});taskpool.execute(task3).then((ret: ArrayBuffer[]) {// 步骤3: 结果处理});
}Entry
Component
struct Index {State message: string Hello Worldbuild() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).onClick(() {let data: ArrayBuffer;histogramStatistic(data);})}.width(100%)}.height(100%)}
} 鸿蒙语言有TS、ArkTS等语法那么除了这些基础知识之外其核心技术点有那些呢下面就用一张整理出的鸿蒙学习路线图表示 从上面的OpenHarmony技术梳理来看鸿蒙的学习内容也是很多的。现在全网的鸿蒙学习文档也是非常的少下面推荐一些完整内容可在头像页保存或这qr23.cn/AKFP8k甲助力 内容包含《鸿蒙NEXT星河版开发学习文档》
ArkTS声明式ArkUI多媒体通信问题系统移植系统裁剪FW层的原理各种开发调试工具智能设备开发分布式开发等等。
这些就是对往后开发者的分享希望大家多多点赞关注喔