HarmonyOS 鸿蒙Next 对于arkts,有没有同步锁的支持计划

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 对于arkts,有没有同步锁的支持计划

之前的语言都提供了同步锁,我们都是习惯了同步处理并且大量代码也都是基于同步锁设计,完全用异步方式迁移原来系统的可能基本为零,不得不面对大量的c++开发,我想如果鸿蒙想尽快让大多数系统迁移,至少不能将迁移的开发成本提高过多吧,毕竟绝大多数的原生代码开发时不在ui线程的逻辑代码不可能不使用同步等待的,这不是简单的web程序迁移,像c++和c#以及java的同步代码全部异步化基本没可能,最终就只能放弃或者web包装(还得是有可能),非常期待arkts能够支持同步锁

3 回复

ArkTS语言基础类库提供了taskPool和worker两个多线程方案,都是基于Actor并发模型实现的。Actor并发模型是基于事件基础传递数据,不需要开发者去面对锁代来的一系列复杂偶发的问题,是线程安全的,同时并发度也相对较高。目前线程间的数据传输支持的对象分为三类,普通的JavaScript对象,可转移对象,可共享对象。

可以看一下是否可以替代同步锁方案

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/multi-thread-concurrency-overview-V5

actor是基于消息的,不是我想要的

关于HarmonyOS 鸿蒙Next对于ArkTS(Ark TypeScript)是否有同步锁的支持计划,目前官方并未明确公布相关信息。不过,根据现有的技术和设计哲学,ArkTS主要是面向前端和UI开发,其底层机制并不直接暴露Java或C++中常见的synchronized关键字或同步锁机制。

ArkTS运行在Ark Runtime上,这是一个为鸿蒙系统设计的轻量级运行时环境,优化了前端应用的性能。在ArkTS环境中,开发者通常需要考虑使用鸿蒙系统提供的并发控制机制或设计模式,如通过消息队列、事件总线、异步回调等方式来避免直接的数据竞争。

对于需要同步访问或保护共享资源的场景,如果确实需要在ArkTS环境中实现类似synchronized的功能,可能需要依赖ArkTS与原生代码(如Java或C++)的互操作能力,在原生层实现同步锁,并通过ArkTS的Native API调用这些功能。但这种方法会增加开发的复杂性和维护成本。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部