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

广州天极营销型网站h5网站页面设计

广州天极营销型网站,h5网站页面设计,宁波市住房和城乡建设局网站,开发一个软件需要什么过程【HarmonyOS Next】鸿蒙应用进程和线程详解 一、前言 进程的定义#xff1a; 进程是系统进行资源分配的基本单位#xff0c;是操作系统结构的基础。 在鸿蒙系统中#xff0c;一个应用下会有三类进程#xff1a; (1) 主进程#xff0c; (2) ExtensionAbility进程#xff…【HarmonyOS Next】鸿蒙应用进程和线程详解 一、前言 进程的定义 进程是系统进行资源分配的基本单位是操作系统结构的基础。 在鸿蒙系统中一个应用下会有三类进程 (1) 主进程 (2) ExtensionAbility进程同一种类型的ExtensionAbility会放在一个进程里。例如FromExtensionAbility创建了两个也会在同一个进程里。【ExtensionAbility详情参见官方链接ExtensionAbility组件】 (3) WebView渲染进程用于网页容器渲染的进程。【这种设计提升了鸿蒙系统中arkWeb的网页容器渲染能力】 线程的定义 线程是操作系统进行运算调度的基本单位是进程中的执行流共享进程的资源。 鸿蒙系统中以主进程举例会有三种类型的线程 1主线程 2TaskPool Worker线程 3Worker线程 后两者用于创建多线程TaskPool Worker主要用于处理轻量级的耗时任务。Worker用于偏重的耗时任务。 二、进程处理 进程的创建 如上图所示三方应用可以创建XXExtensionAbility的形式增加应用内的进程。但是Webview渲染进程和主进程的是不能创建增加。 跨进程通信 鸿蒙系统目前提供了两种方式实现跨进程通信公共事件和Emitter。这两个方案外startAbility也可传递一些信息。 公共事件主要是监听系统的事件分为系统公共事件和自定义事件。三方应用主要通过自定义事件来通信。 import { commonEventManager } from kit.BasicServicesKit; import { BusinessError } from kit.BasicServicesKit;// 定义订阅者用于保存创建成功的订阅者对象后续使用其完成订阅及退订的动作 let subscriber: commonEventManager.CommonEventSubscriber; // 订阅者信息 let subscribeInfo: commonEventManager.CommonEventSubscribeInfo {events: [event] }; // 创建订阅者回调 function createCB(err: BusinessError, commonEventSubscriber: commonEventManager.CommonEventSubscriber) {if (err ! null) {console.error(Failed to create subscriber. Code is ${err.code}, message is ${err.message});} else {console.info(Succeeded in creating subscriber);subscriber commonEventSubscriber;} } // 创建订阅者 commonEventManager.createSubscriber(subscribeInfo, createCB);Emitter的使用类似于EventHub只不过在这个基础上多了传递包裹的封装添加了优先级和序号。也新增了once监听一次的接口而已。 Sendable class Sample {constructor() {this.count 100;}printCount() {console.info(Print count : this.count);}count: number; }let callback (eventData: emitter.GenericEventDataSample): void {let storage: Sample eventData.data!;storage.printCount(); } // 收到eventId为eventId的事件后执行回调函数 emitter.on(eventId, callback);三、线程处理 1.线程的创建和线程间通信 如上所说可以使用TaskPool Worker 和 Worker创建线程。并且配套会有双向通信的接口。 需要注意的是前者有性能要求太过于耗时的操作例如超过三分钟就会无条件失败这种耗时任务就要使用后者Worker来实现。不过后者又因为消耗系统资源一个应用只能创建八个。 TaskPool Worker Concurrent function printArgs(args: number): number {console.info(printArgs: args);return args; }taskpool.execute(printArgs, 100).then((value: Object) { // 100: test numberconsole.info(taskpool result: value); });Worker // Worker.ets import { worker, MessageEvents, ErrorEvent } from kit.ArkTS;// 创建worker线程中与宿主线程通信的对象 const workerPort worker.workerPort// worker线程接收宿主线程信息 workerPort.onmessage (e: MessageEvents): void {// data宿主线程发送的信息let data: number e.data;// 往收到的buffer里写入数据const view new Int8Array(data).fill(3);// worker线程向宿主线程发送信息workerPort.postMessage(view); }// worker线程发生error的回调 workerPort.onerror (err: ErrorEvent) {console.log(worker.ets onerror err.message); }// Index.ets import { worker, MessageEvents, ErrorEvent } from kit.ArkTS;Entry Component struct Index {State message: string Hello World;build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).onClick(() {// 宿主线程中创建Worker对象const workerInstance new worker.ThreadWorker(entry/ets/workers/Worker.ets);// 宿主线程向worker线程传递信息const buffer new ArrayBuffer(8);workerInstance.postMessage(buffer, [buffer]);// 宿主线程接收worker线程信息workerInstance.onmessage (e: MessageEvents): void {// dataworker线程发送的信息let data: number e.data;console.info(main thread data is data);// 销毁Worker对象workerInstance.terminate();}// 在调用terminate后执行onexitworkerInstance.onexit (code) {console.log(main thread terminate);}workerInstance.onerror (err: ErrorEvent) {console.log(main error message err.message);}})}.width(100%).height(100%)}} }2.线程内通信 EventHubGlobalThis单例AppStorage。都可实现线程内UI界面UIAbility和业务类之间的通信。
http://www.hkea.cn/news/14407820/

相关文章:

  • 宏大建设集团网站制作网站管理系统
  • 一些js特效的网站推荐wordpress挂马
  • 美的公司网站建设的目的网页设计学科门类是啥
  • 怎么创建网站论坛外贸商城网站系统
  • 深圳软件园有哪些公司常德seo排名
  • 怎么提高网站关键词排名网站建设正文字体多大合适
  • 网站公司查询优化设计三年级上册答案
  • 做外贸一般在哪个网站网络营销和推广的方法
  • 江西企业网站建设价格企业宣传方式有哪些
  • 抽奖网站怎么制作网站轮播图片制作
  • 化妆品营销型网站北京医疗网站建设公司排名
  • 那里建设网站好企业管理咨询经营范围
  • 南京公司建设网站wordpress建电商网站
  • 做ic什么网站好来宾绍兴seo网站托管方案
  • 外贸人常去的网站创意广告设计培训
  • 阿里云上的网站空间好用吗建设网站协议合同范本
  • 做网站怎么找优质客户wordpress评论链接
  • 交通门户网站建设千万别学网络工程
  • 公司怎么建立自己的网站深圳分销网站设计
  • wordpress博客网站招一个程序员可以做网站吗
  • 沈阳做购物网站电话wordpress 网页目录下
  • 绍兴网站制作报价大网站建设规范
  • 公司介绍ppt内容在哪里可以免费自学seo课程
  • 楚雄市网站建设公司影视网站搭建平台
  • 深圳做网站de绵阳公司商务网站制作
  • 推广 电子商务网站建设电商网站建设哪个好
  • 网站制作企业有哪些公司网站页面太多怎么做网站地图
  • 内部网站建设app免费注册com的网站
  • 做外贸网站需要缴什么税雄县网站建设
  • 用easyui皮肤做漂亮的网站天津业之峰装修公司地址