HarmonyOS 鸿蒙Next 有同步锁的概念吗
HarmonyOS 鸿蒙Next 有同步锁的概念吗
有类似java中 synchronized
同步锁的东西吗?
项目中有一处使用场景,列表下拉刷新获取到新数据后,会把本地的数据先删除后保存,这是两条sql,
另一处场景是收到通知后,会对数据表中的某一属性进行修改(此属性值是以本地维护的数据为准的,下拉刷新不会覆盖此数据),
目前监测到有小概率会发生场景一中获取新数据后,删除的操作执行成功后,执行了场景二中的修改,然后才执行了场景一中的保存,这样修改的时候表中并无数据,就会丢失一次更新操作。因为两处场景分别属于不同的代码块,现在想让删除+保存加个锁,修改加个锁,如果进入删除保存代码块后,启动锁,执行完后在释放,这样修改就不会插队到删除后
更多关于HarmonyOS 鸿蒙Next 有同步锁的概念吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
支持AsyncLock形式的同步机制,将需要同步的代码块放到异步代码块中。具体请参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-arkts-utils-V5#asynclock
实现synchronized同步锁的功能,还可以在调用的异步方法前面加上await将方法转为同步,lock暂时是无法实现的,因为arkts是单线程模型,没有锁的概念,但是提供异步并发能力,同一时间只有一段代码在执行。具体请参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/concurrency-overview-V13
更多关于HarmonyOS 鸿蒙Next 有同步锁的概念吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html