0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发:【线程模型】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-13 16:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

线程模型

线程类型

Stage模型下的线程主要有如下三类:

  • 主线程
    • 执行UI绘制。
    • 管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上。
    • 管理其他线程的ArkTS引擎实例,例如使用TaskPool(任务池)创建任务或取消任务、启动和终止Worker线程。
    • 分发交互事件。
    • 处理应用代码的回调,包括事件处理和生命周期管理。
    • 接收TaskPool以及Worker线程发送的消息。
  • [TaskPool Worker线程]
    • 用于执行耗时操作,支持设置调度优先级、负载均衡等功能,推荐使用。
  • [Worker线程]
    • 用于执行耗时操作,支持线程间通信。 TaskPool与Worker的运作机制、通信手段和使用方法可以参考[TaskPool和Worker的对比]。 thread-model-stage

说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

  • TaskPool自行管理线程数量,其生命周期由TaskPool统一管理。Worker线程最多创建8个,其生命周期由开发者自行维护。
  • 同一线程中存在多个组件,例如UIAbility组件和UI组件都存在于主线程中。在Stage模型中目前主要使用[EventHub]进行数据通信。
  • 执行hdc shell命令,进入设备的shell命令行。在shell命令行中,执行ps -p -T命令,可以查看指定应用进程的线程信息。其中,为需要指定的应用进程的[进程ID]。

鸿蒙文档.png

使用EventHub进行线程内通信

[EventHub]提供了线程内发送和处理事件的能力,包括对事件订阅、取消订阅、触发事件等。以UIAbility组件与UI之间的数据同步为例,具体使用方法可以参考[UIAbility组件与UI的数据同步]。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 线程
    +关注

    关注

    0

    文章

    508

    浏览量

    20761
  • 鸿蒙
    +关注

    关注

    60

    文章

    2861

    浏览量

    45364
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙内核源码Task/线程技术分析

    前言 在鸿蒙内核中,广义上可理解为一个Task就是一个线程 一、怎么理解Task 1. 官方文档是怎么描述线程 基本概念 从系统的角度看,线程是竞争系统资源的最小运行单元。
    的头像 发表于 10-18 10:42 2984次阅读
    <b class='flag-5'>鸿蒙</b>内核源码Task/<b class='flag-5'>线程</b>技术分析

    鸿蒙OS 线程管理开发指导

    场景介绍 如果应用的业务逻辑比较复杂,可能需要创建多个线程来执行多个任务。这种情况下,代码复杂难以维护,任务与线程的交互也会更加繁杂。要解决此问题,开发者可以使用“TaskDispatcher”来
    的头像 发表于 01-29 16:22 1332次阅读

    鸿蒙原生应用开发-ArkTS语言基础类库多线程并发概述

    并发模型是用来实现不同应用场景中并发任务的编程模型,常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。 Actor并发
    发表于 03-22 15:40

    鸿蒙原生应用开发-ArkTS语言基础类库多线程并发概述

    并发模型是用来实现不同应用场景中并发任务的编程模型,常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。 Actor并发
    发表于 03-28 14:35

    DevEco Studio AI辅助开发工具两大升级功能 鸿蒙应用开发效率再提升

    数据支撑时提供相关的延伸指导。这种设计既保障了鸿蒙技术支持的专注度,又通过善意引导帮助用户建立合理预期,最终实现开发者体验与专业深度的双提升。 随着DeepSeek模型使用RAG能力增强之后
    发表于 04-18 14:43

    鸿蒙5开发宝藏案例分享---应用并发设计

    ?** 鸿蒙并发编程实战指南:解锁ArkTS多线程黑科技** 嘿,开发者朋友们! 今天给大家扒一扒鸿蒙官方文档里藏着的并发编程宝藏—— 100+实战场景解决方案 !从金融理财到游戏
    发表于 06-12 16:19

    鸿蒙5开发宝藏案例分享---跨线程性能优化指南

    ;>Worker</span>做多线程开发时,总遇到对象跨线程卡顿的问题,原来鸿蒙早就提供了解决方案。下面结合代码和实战案例,带你彻底玩转性能优化! 一、痛点:跨
    发表于 06-12 17:13

    BearPi-HM_Nano开发鸿蒙OS内核编程开发——Thread多线程

    BearPi-HM_Nano开发鸿蒙OS内核编程开发——Thread多线程本示例将演示如何在BearPi-HM_Nano开发板上使用cms
    发表于 04-09 09:50

    线程服务器编程模型:如何正确使用mutex 和condition variable

    本文对多线程服务器的常用编程模型进行了一个详细的解读,本文中的多线程服务器是运行在 Linux 操作系统上网络应用程序。介绍了典型的单线程服务器编程
    的头像 发表于 02-19 08:29 7814次阅读
    多<b class='flag-5'>线程</b>服务器编程<b class='flag-5'>模型</b>:如何正确使用mutex 和condition variable

    介绍CUDA编程模型及CUDA线程体系

    CUDA 编程模型主要有三个关键抽象:层级的线程组,共享内存和栅同步(barrier synchronization)。
    的头像 发表于 05-19 11:32 2862次阅读
    介绍CUDA编程<b class='flag-5'>模型</b>及CUDA<b class='flag-5'>线程</b>体系

    SCP线程模型特点

    线程 混合协作调度模型-调度在具有相同优先级的线程之间是协作的。 •无需锁 •使代码更简单,避免了死锁的情况。 •它消除了对执行上下文/RTOS的依赖,并防止了开销。 •事件在线程上下
    的头像 发表于 11-02 17:07 1162次阅读
    SCP<b class='flag-5'>线程</b><b class='flag-5'>模型</b>特点

    使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

    随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro 发布了 v4.0.0-beta.x 版本,支持使用 Taro 快速开发鸿蒙原生应用,也可将现有的
    的头像 发表于 02-02 16:09 1844次阅读
    使用 Taro <b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b>原生应用 —— 快速上手,<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>开发</b>指南

    摩尔线程与智谱AI完成大模型性能测试与适配

    近日,摩尔线程与智谱AI在人工智能领域开展了一轮深入的合作,共同对GPU大模型进行了适配及性能测试。此次测试不仅涵盖了大模型的推理能力,还涉及了基于摩尔线程夸娥(KUAE)千卡智算集群
    的头像 发表于 06-14 16:40 1948次阅读

    鸿蒙开发线程模型

    FA模型下的线程主要有如下三类
    的头像 发表于 06-24 17:27 1024次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>线程</b><b class='flag-5'>模型</b>

    鸿蒙中Stage模型与FA模型详解

    【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##
    的头像 发表于 07-07 11:50 632次阅读