1、异步锁机制
在介绍共享容器之前,先介绍异步锁机制。
为了解决多线程并发任务间的数据竞争问题,ArkTS引入了异步锁能力。异步锁可能会被类对象持有,因此为了更方便地在并发实例间获取同一个异步锁对象,AsyncLock对象支持跨线程引用传递。
由于ArkTS语言支持异步操作,阻塞锁容易产生死锁问题,因此在ArkTS中仅支持异步锁(非阻塞式锁)。同时,异步锁还可以用于保证单线程内的异步任务时序一致性,防止异步任务时序不确定导致的同步问题。
使用异步锁的方法需要标记为async,调用方需要使用await修饰,才能保证时序正确。 |
为了解决@Sendable共享对象在不同线程修改共享变量导致的竞争问题,可以采用异步锁进行数据保护。Sendable共享对象在之前文章中有介绍
标签:容器,ArkTS,遍历,鸿蒙,number,value,thisArg,多线程,sendable From: https://blog.csdn.net/harmonyClassRoom/article/details/144070602