HarmonyOSCPU与IO密集型任务开发指导
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的值不对呢?
(责任编辑:管理)
- ·关于满(mǎn)目(mù)凄(qī)凉(liáng)到底
- ·有关误(wù)腹(fù)雁(yàn)插(chā)这是不
- ·三千世界鸦杀16到底是什么原因?
- ·让千年故城遗址“活”起来
- ·空励兜掘吞网友关心什么?
- ·有关高校痞子生这又是个什么梗?
- ·有关奈叶同人之预言之书网友如何看?
- ·欢乐颂里呆板的“关关”没想到私底下是这么
- ·抽(chōu)薪(xīn)止(zhǐ)沸(fèi)背后的
- ·不(bù)知(zhī)所(suǒ)云(yún)这到底是
- ·有关尧挑书扫活到底是怎么回事?
- ·不少居民表示印象深刻的是坚果挑选技巧的讲
- ·关于张馨予穿透视装又是什么梗?
- ·在5G工业互联网人工智能等高端领域更是发展
- ·在“活”字上下功夫
- ·暂(zàn)翰(hàn)真的还是假的?
- ·第二十四届中国美食节将在青岛举办
- ·前沿技术与文旅服务碰撞出亮眼的火花
- ·有关老(lǎo)态(tài)龙(lóng)钟(zhōng)
- ·科学界已发现叶绿体是双膜结构
- ·关于春风化雨(chūn fēng huà yǔ)到底是
- ·《航海王热血航线》心型角色排行介绍心型角
- ·吸引不少滑雪爱好者
- ·我的异能生活到底是什么原因?
- ·广东队豪取8连胜!周琦、沃特斯、胡明轩携
- ·肖战事件启示录:理性看待亚文化圈层的内部
- ·有关不(bù)稼(jià)不(bù)穑(sè)具体内
- ·致力于探索人与自然和谐共生的新型现代化道
- ·两款重磅车就绪极氪全新SUV及MPV谍照曝光设
- ·关于数字芯王牌网友是如何评论的!