首页 > 其他分享 >鸿蒙多线程开发——sendable共享容器

鸿蒙多线程开发——sendable共享容器

时间:2024-11-26 23:31:27浏览次数:7  
标签:容器 ArkTS 遍历 鸿蒙 number value thisArg 多线程 sendable

1、异步锁机制

在介绍共享容器之前,先介绍异步锁机制。

为了解决多线程并发任务间的数据竞争问题,ArkTS引入了异步锁能力。异步锁可能会被类对象持有,因此为了更方便地在并发实例间获取同一个异步锁对象,AsyncLock对象支持跨线程引用传递。

由于ArkTS语言支持异步操作,阻塞锁容易产生死锁问题,因此在ArkTS中仅支持异步锁(非阻塞式锁)。同时,异步锁还可以用于保证单线程内的异步任务时序一致性,防止异步任务时序不确定导致的同步问题。

使用异步锁的方法需要标记为async,调用方需要使用await修饰,才能保证时序正确。

为了解决@Sendable共享对象在不同线程修改共享变量导致的竞争问题,可以采用异步锁进行数据保护。Sendable共享对象在之前文章中有介绍

标签:容器,ArkTS,遍历,鸿蒙,number,value,thisArg,多线程,sendable
From: https://blog.csdn.net/harmonyClassRoom/article/details/144070602

相关文章

  • Java进阶六-多线程
    一多线程相关概念进程(Process):进程是程序的基本执行实体。进程是操作系统分配资源的基本单位。每个进程都有自己的内存空间、代码段、数据段等。进程之间相互独立,一个进程的崩溃不会影响其他进程。进程是程序的基本执行实体。线程(Thread): 应用软件中相互独立,可以......
  • 鸿蒙NEXT开发案例:温度转换
     【引言】温度是日常生活中常见的物理量,但不同国家和地区可能使用不同的温度单位,如摄氏度(Celsius)、华氏度(Fahrenheit)、开尔文(Kelvin)、兰氏度(Rankine)和列氏度(Reaumur)。为了方便用户在这些温度单位之间进行快速准确的转换,我们开发了一款温度转换工具。该工具支持五种温度单位之......
  • [Chromium] 多线程任务队列
    Thread线程通用接口,跨平台封装,会创建并持有RunLoop对象//base/threading/thread.hraw_ptr<RunLoop>run_loop_=nullptr;//这种写法可以抽离真正的消息循环逻辑到RunLoop中,并且保证这部分逻辑会随着线程主函数结束后销毁RunLooprun_loop;run_loop_=&run_loop;Run(ru......
  • 请为什么说js是单线程,而不是多线程呢?
    JavaScript的单线程性质主要源于其最初的设计目标:操作浏览器中的DOM(文档对象模型)。如果JavaScript是多线程的,并且多个线程同时尝试修改DOM,就可能会出现竞态条件,导致DOM处于不一致或损坏的状态。想象一下,一个线程试图添加一个元素,而另一个线程同时试图删除同一个元素的父元素,这会导......
  • 鸿蒙学习全方位运维分析
    文章目录1、崩溃服务2、性能管理3、云服务监控4、故障监控和预防HUAWEIAppGalleryConnect提供低门槛、高效率、多场景的大数据能力,包括质量分析、性能调优、故障定位、行业风向等。同时支持多维度数据分析,智能诊断问题并给出解决方案,为开发者明确质量优化方向,提升......
  • Java面试之多线程&并发篇(8)
    前言本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!引用类型有哪些?有什么区别?说说ThreadLocal原理?线程池原理知道吗?以及核心参数?线程池的拒绝策略有哪些?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘***12万字的java面试题整理******java核心面试知识整理......
  • JavaEE 【知识改变命运】03 多线程(2)
    文章目录复习1.1进程和线程的区别1.2线程创建的方式1.3两者创建的区别2多线程2.1多线程的优势-增加了运行的速度2.2Thread类及常用的方法2.2.1常用见的构造方法2.2.2获取当前类的信息2.2.3Thread的⼏个常⻅属性1演示后台线程2线程是否存活3名称4线程中断5等待......
  • 鸿蒙NEXT开发案例:亲戚关系计算器
     【引言】在快节奏的现代生活中,人们往往因为忙碌而忽略了与亲戚间的互动,特别是在春节期间,面对众多的长辈和晚辈时,很多人会感到困惑,不知道该如何正确地称呼每一位亲戚。针对这一问题,我们开发了一款基于鸿蒙NEXT平台的“亲戚关系计算器”应用,旨在帮助用户快速、准确地识别和称呼......
  • 鸿蒙实战开发(OpenHarmony)拍照示例开发
      鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)使用......
  • 鸿蒙HarmonyOS开发:相机拍照(ArkTS)
    鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)拍照是相......