【HarmonyOS NEXT】进程与线程的理解

一、背景

在鸿蒙开发中,进程和线程的概念极其重要,这篇文章主要整理我个人对鸿蒙中进程和线程的理解

二、进程

2.1、核心概念

进程是系统进行资源分配的基本单位(每个进程拥有独立的内存空间),也是操作系统结构的基础,其类型可分为以下几类(对应下图):

个人通俗理解:

每个APP是一个独立的进程,资源隔离,切换成本高;

比如可以用 "火锅店和炸鸡店" 类比:

1、独立进程:火锅店和炸鸡店就属于两个不同的进程,各自独立,互不干扰,其中一家店休息或倒闭,对另外一家店没有任何影响

2、独立资源:每个门店有自己的厨房、服务员

3、进程隔离:两个餐厅之间不共享食材和厨具

4、通信:若两个门店之间需要交换物品可以通过外卖配送的形式(IPC通信)

2.2、跨进程通信

鸿蒙提供了多种跨进程通信方式,常见的包括公共事件(广播式)、Emitter(轻量级点对点),此外 startAbility(基于 Ability 启动的指令 + 数据传输)、IPC/RPC(高性能点对点)、DataShare(跨进程数据共享)等也属于跨进程通信的范畴

三、线程

3.1、核心概念

线程是操作系统进行运算调度的基本单位,是进程内的执行流,会共享所属进程的资源,鸿蒙中的线程类型主要包括(对应下图):

个人通俗理解:

每个App有多个线程,共享资源,切换成本低;

比如用 "火锅店" 类比:

1、主线程:前台接待员-->负责接待客人和点餐(UI操作),绝对不能执行耗时操作,否则会导致页面卡顿,必须快速响应

2、工作线程:后厨-->具有多线程,A线程负责切菜、B线程负责炒菜、C线程负责洗锅刷盘子

3、共享资源:共用厨房、冰箱(共享内存)

4、通信:有啥问题,大家相互吼一嗓子就完事了

3.2、线程内通信

EventHub、单例、AppStorage(V2装饰器使用 AppStorageV2)等方式均可实现线程内通信

相关推荐
ZZZMMM.zip4 小时前
基于鸿蒙HarmonyOS NEXT开发AI英语口语应用:智能口语练习新体验与鸿蒙Flutter框架跨端实
人工智能·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
心中有国也有家5 小时前
AtomGit Flutter 鸿蒙客户端:白噪音场景的视觉设计
学习·flutter·华为·harmonyos
最爱老式锅包肉5 小时前
《HarmonyOS技术精讲-ArkGraphics 2D(方舟2D图形服务)》第九篇:数据可视化——柱状图与饼图的绘制实战
华为·信息可视化·harmonyos
心中有国也有家5 小时前
AtomGit Flutter 鸿蒙客户端:呼吸练习的完整生命周期
学习·flutter·华为·harmonyos
绝世番茄6 小时前
登录表单布局:从 Column 到完整表单 —— 鸿蒙 HarmonyOS ArkTS 原生学习指南
华为·list·harmonyos·鸿蒙
不才难以繁此生6 小时前
HarmonyOS ArkTS 实战|中式美食用户行为数据:Preferences 持久化、搜索缺口与候选排序
harmonyos·arkts·用户行为分析·preferences·中式美食·arkui v2
智塑未来6 小时前
鸿蒙系统对比安卓、iOS,核心优势是什么?
android·ios·harmonyos
心中有国也有家7 小时前
AtomGit Flutter 鸿蒙客户端:呼吸球动画
学习·flutter·华为·harmonyos
ZZZMMM.zip8 小时前
信息压缩站-长文智能摘要的HarmonyOS开发实践
人工智能·华为·harmonyos·鸿蒙·鸿蒙系统
绝世番茄8 小时前
VisualEffect 视觉特效鸿蒙HarmonyOS ArkTS原生学习
学习·华为·harmonyos·鸿蒙