1、概 述
目前,多线程的开发我们已经学过TaskPool和Worker两种方式:
-
-
TaskPool参看 鸿蒙多线程开发——TaskPool任务池
-
Worker参看 鸿蒙多线程开发——Worker多线程
-
我们现在讨论下多线程的同步任务处理。
同步任务是指在多个线程之间协调执行的任务,其目的是确保多个任务按照一定的顺序和规则执行,例如使用锁来防止数据竞争。
由于TaskPool偏向于单个独立的任务,因此当各个同步任务之间相对独立时推荐使用TaskPool,例如一系列导入的静态方法,或者单例实现的方法。如果同步任务之间有关联性,则需要使用Worker,例如无法单例创建的类对象实现的方法。
2、Worker处理关联的同步任务
当一系列同步任务需要使用同一个句柄调度,或者需要依赖某个统一调度管理的类,而这些类或者句柄无法在不同任务池之间共享时,我们需要使用Worker。
👉🏻 step 1
在主线程中创建Worker对象,同时接收Worker线程发送回来的消息,根据实际的业务场景,再发送对应的指令到worker中。
// Index.etsimport { worker } from '@kit.ArkTS';@Entry@Componentstruct Index {@State message: string = 'Hello World';build() {
鸿蒙多线程同步任务处理方式

最低0.47元/天 解锁文章
720

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



