1、概 述
在介绍鸿蒙开发中线程间通信问题前,我们先解释下什么是线程。
在计算机科学中,线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。这么说是不是太抽象了?咱们换成通俗的话来说:
| 假如把一个正在运行的程序想象成一个大工厂。这个工厂在运作的时候,有很多不同的任务要做。线程呢,就像是工厂里的一个的工人小组(不同的科室)。 每个工人小组(线程)都可以独立地干活,去完成特定的一小部分任务。比如有的工人小组专门负责把原材料搬进工厂,有的专门负责在生产线上组装零件,还有的专门负责把成品打包运出去。 这些工人小组可以同时工作,一起努力让工厂的生产效率更高。就像在电脑里,多个线程可以同时进行不同的任务,让程序运行得更快更顺畅。 这些工人小组都是在同一个大工厂(程序)里干活,他们可以共享一些工厂里的资源,比如工具啊、仓库啊之类的。这样就可以更方便地协同工作啦。 |
相应的,我们通过上面的形象的例子了解了什么是线程后,那线程内通信,就可以类比为工人小组之间的消息传递。
2、线程模型
在介绍线程内通信前,我们先了解下鸿蒙应用的线程主要有哪几类,主要分为三类,他们分别的职责说明如下:
1)主线程
-
执行UI绘制。
-
管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上。
-
管理其他线程的ArkTS引擎实例,例如使用TaskPool(任务池)创建任务或取消任务、启动和终止Worker线程。
-
分发交互事件。
-
处理应用代码的回调,包括事件处理和生命周期管理。
-
接收TaskPool以及Worker线程发送的消息。
2)TaskPool Worker线程
-
用于执行耗时操作,支持设置调度优先级、负载均衡等功能,推荐使用。
3)Worker线程
-
用于执行耗时操作,支持线程间通信。
TaskPool(任务池)和Worke


最低0.47元/天 解锁文章
1592

被折叠的 条评论
为什么被折叠?



