鸿蒙开发——线程内通信

1、概 述

在介绍鸿蒙开发中线程间通信问题前,我们先解释下什么是线程。

在计算机科学中,线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。这么说是不是太抽象了?咱们换成通俗的话来说:

假如把一个正在运行的程序想象成一个大工厂。这个工厂在运作的时候,有很多不同的任务要做。线程呢,就像是工厂里的一个的工人小组(不同的科室)。

每个工人小组(线程)都可以独立地干活,去完成特定的一小部分任务。比如有的工人小组专门负责把原材料搬进工厂,有的专门负责在生产线上组装零件,还有的专门负责把成品打包运出去。

这些工人小组可以同时工作,一起努力让工厂的生产效率更高。就像在电脑里,多个线程可以同时进行不同的任务,让程序运行得更快更顺畅。

这些工人小组都是在同一个大工厂(程序)里干活,他们可以共享一些工厂里的资源,比如工具啊、仓库啊之类的。这样就可以更方便地协同工作啦。

相应的,我们通过上面的形象的例子了解了什么是线程后,那线程内通信,就可以类比为工人小组之间的消息传递。

2、线程模型

在介绍线程内通信前,我们先了解下鸿蒙应用的线程主要有哪几类,主要分为三类,他们分别的职责说明如下:

1)主线程

  • 执行UI绘制。

  • 管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上。

  • 管理其他线程的ArkTS引擎实例,例如使用TaskPool(任务池)创建任务或取消任务、启动和终止Worker线程。

  • 分发交互事件。

  • 处理应用代码的回调,包括事件处理和生命周期管理。

  • 接收TaskPool以及Worker线程发送的消息。

2)TaskPool Worker线程

  • 用于执行耗时操作,支持设置调度优先级、负载均衡等功能,推荐使用。

3)Worker线程

  • 用于执行耗时操作,支持线程间通信。

TaskPool(任务池)和Worke

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值