当前位置: 首页 > news >正文

母婴设计网站大连网站制作建设

母婴设计网站,大连网站制作建设,物联网应用技术是干什么的,搭建了什么样的平台【鸿蒙开发】多线程之Worker的使用 文章目录 【鸿蒙开发】多线程之Worker的使用前言一、Worker的介绍二、注意事项三、Worker使用示例1.新建一个Worker2.主线程使用Worker3.子线程Worker的使用 四、效果展示 前言 本文主要介绍了多线程的方法之一#xff0c;使用Worker开启多…【鸿蒙开发】多线程之Worker的使用 文章目录 【鸿蒙开发】多线程之Worker的使用前言一、Worker的介绍二、注意事项三、Worker使用示例1.新建一个Worker2.主线程使用Worker3.子线程Worker的使用 四、效果展示 前言 本文主要介绍了多线程的方法之一使用Worker开启多线程介绍了如何使用Worker。之前发布过TaskPool的使用大家可以点击链接查看。 # 【鸿蒙开发】多线程之TaskPool的使用 一、Worker的介绍 Worker 是用于多线程并行任务处理的能利用多核优势提效。在程序里主线程管界面交互、任务调度Worker 线程专注耗时计算或异步操作像处理大数据、渲染复杂图形、密集网络请求时让主线程保持灵敏快速响应操作。Worker最多支持64个多线程TaskPool没有这个限制。workder是通过onMessage和postMessage发消息实现主线程和子线程的通信的TaskPool是通过参数的方式进行通信。 二、注意事项 1、及时关闭 Worker开发者要清楚Worker 完成任务后得手动关闭如果不关闭资源会一直被占用导致系统性能下降甚至可能内存泄漏。 2、避免主线程卡顿Worker 在多线程编程里很重要主要负责处理耗时任务像大数据处理、频繁网络请求等。它能帮主线程分担压力让主线程专注用户交互与任务调度快速响应操作 3、谨慎共享资源虽然 Worker 线程和主线程能共享部分资源但开发时不能过度依赖。多个 Worker 线程同时读写同一共享资源容易混乱导致数据出错、不一致尽量给 Worker 配独立资源。 三、Worker使用示例 1.新建一个Worker 2.主线程使用Worker Worker是通过onMessage和postMessage进行主线程和子线程通信的 //worker的使用getWorker() {const work1 new worker.ThreadWorker(entry/ets/workers/Worker.ets)work1.postMessage(123) //主线程给子线程发消息//主线程接收消息work1.onmessage (event) {// event.data-可以拿到子线程发送的消息AlertDialog.show({ message: 收到子线程发的消息 JSON.stringify(event)})work1.terminate() //worker需要自毁或者再Workers那执行workerPort.close()}}主线程完整代码 import { worker } from kit.ArkTS;Entry Component struct Index {aboutToAppear(): void {this.getWorker()}//worker的使用getWorker() {const work1 new worker.ThreadWorker(entry/ets/workers/Worker.ets)work1.postMessage(123) //主线程给子线程发消息//主线程接收消息work1.onmessage (event) {// event.data-可以拿到子线程发送的消息AlertDialog.show({ message: 收到子线程发的消息 JSON.stringify(event) })work1.terminate() //worker需要自毁或者再Workers那执行workerPort.close()}}build() {RelativeContainer() {}.height(100%).width(100%)} } 注意事项本次演示代码路径 如果代码测试请求数据注意在modules.json5中开启网络权限 3.子线程Worker的使用 子线程创建时会生成代码我们在workerPort.onmessage中处理和主线程的通信即可。 workerPort.onmessage async (e: MessageEvents) {// e.data 可以拿到主线程传的消息console.log( 接收到主线程发来的消息----- , e.data)const req http.createHttp()const res await req.request(https://xxx/home/banner)//子线程给主线程发消息--将请求结果返回workerPort.postMessage(JSON.stringify(res))// 如果主线程没有关闭worker主线程可以让worker自焚// workerPort.close() //自毁 }子线程完整代码 import { ErrorEvent, MessageEvents, ThreadWorkerGlobalScope, worker } from kit.ArkTS; import { http } from kit.NetworkKit;const workerPort: ThreadWorkerGlobalScope worker.workerPort;/*** Defines the event handler to be called when the worker thread receives a message sent by the host thread.* The event handler is executed in the worker thread.** param e message data*/ workerPort.onmessage async (e: MessageEvents) {// e.data 可以拿到主线程传的消息console.log( 接收到主线程发来的消息----- , e.data)// AlertDialog.show({ message: 接收到主线程发来的消息 e.data, alignment: DialogAlignment.Center })const req http.createHttp()const res await req.request(https://xxx/home/banner)//子线程给主线程发消息--将请求结果返回workerPort.postMessage(JSON.stringify(res))// 如果主线程没有关闭worker主线程可以让worker自焚// workerPort.close() //自毁 }/*** Defines the event handler to be called when the worker receives a message that cannot be deserialized.* The event handler is executed in the worker thread.** param e message data*/ workerPort.onmessageerror (e: MessageEvents) { }/*** Defines the event handler to be called when an exception occurs during worker execution.* The event handler is executed in the worker thread.** param e error message*/ workerPort.onerror (e: ErrorEvent) { }注意事项 子线程在创建Worker时会自动生成文件在生成的文件中处理逻辑。 四、效果展示 本次示例子线程给主线程发送了一个请求结果我们用的是弹窗的形式展示 主线程给子线程发消息用的是控制台打印
http://www.hkea.cn/news/14432747/

相关文章:

  • 宁波网站建设方案推广海南网站建设方面
  • 阳江市最大人才招聘网怎么做网站关键词优化
  • 哪个网站帮忙做户型方案wordpress重新生成文章更新
  • 电子商务网站难做吗建一个网站报价
  • 定西市住房和城乡建设局网站云南工商注册公司网上申请入口
  • 安徽湖滨建设集团有限公司网站做百度竞价网站修改影响排名吗
  • 网站建设仟首选金手指wordpress 变换模板
  • 成都网站关键词排名wordpress在线编辑器
  • 网站优化页面住房建设网站
  • 辽宁seo站内优化辽宁建设工程信息网大连
  • 广州服装设计公司有哪些优化公司组织架构
  • 泰安中文网站建设电话有关网站建设文章
  • 深圳做网站找谁临沂网站制作费用
  • 成都建设网站那个好2016企业网站建设合同
  • 网站建设中怎么回事网站建设费做什么会计科目
  • 网站平面设计完成后 与客户怎样沟通免费制作地图app
  • 杭州知名网站制作公司导视设计论文
  • 360推广做网站中国域名网站
  • 中地海外路桥建设有限公司网站内部优化
  • 甘肃网站建设选哪家自媒体平台账号
  • h5单页网站制作贵阳室内设计学校
  • 如何用源代码建设网站软件编程技术培训机构
  • 网站膜拜销售石家庄视频剪辑培训学校
  • 邵阳专业网站设计企业网站的开发与应用
  • 唐山网站建设方案报价网站建设专业英文
  • 云南做网站公司用asp做网站有哪控件
  • jq网站特效插件下载免费的oa办公系统排名
  • 永川做网站的公司95598网站服务建设
  • 怎样做一个简单的网站vue 微信公众号开发
  • 简单网站的制作wordpress 七牛云上传