HarmonyOS 关于RdbStore的操作的一些疑问

关系型数据库文档有如下描述:

1、“为保证数据的准确性,数据库同一时间只能支持一个写操作”

2、“数据库中有4个读连接和1个写连接,线程获取到空闲读连接时,即可进行读取操作。当没有空闲读连接且有空闲写连接时,会将写连接当做读连接来使用”

相关问题:

1、RDB框架内部做了安全同步同步吗?是否支持多线程写操作?还是需要开发者自己考虑同步操作?

2、如果不支持多线程写入,HarmonyOS 上有没有类似java synchronized 同步锁的一些方案?

3、普通的写、查、删操作,比如query、delete、insert等API内部是否实现了事务?是否还需要开发者自己实现?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang
  1. RdbStore中有安全同步,支持多线程写,因为只有一个写链接,所以在同时有多个写操作时,只会有一个写操作写入,其他写操作需要等待写链接空闲时才能写入:

    https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-local-database-management-16-V5

  2. 可以在调用的异步方法前面加上await将方法转为同步:

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

  3. 可以通过beginTransaction开启事务:

    https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-data-relationalstore-V5#begintransaction

  4. ArkTS是线程隔离的,并不存在线程锁,rdb底层基于sqlite,应用使用时c层会单独创建线程,c存在线程锁,支持多线程写操作,在多线程中,RDB在同一时间只支持一个写操作,只有存在空闲的写链接才能继续进行写操作,用这样的限制来保证数据存储的正确性

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 使用Navigation一些疑问
350浏览 • 1回复 待解决
关于designWidth一些问题
348浏览 • 1回复 待解决
HarmonyOS 关于VPN一些使用问题?
118浏览 • 1回复 待解决
关于系统信息一些参数询问
310浏览 • 1回复 待解决
关于快速修复一些问题。
784浏览 • 1回复 待解决
关于鸿蒙BLE一些问题
4338浏览 • 1回复 待解决
关于liteos,有一些疑惑
9076浏览 • 3回复 待解决
关于华为应用级AT一些问题
12045浏览 • 3回复 待解决
关于laravel一些难受问题,连表查询
3150浏览 • 1回复 待解决
关于鸿蒙和uboot间一些问题
9239浏览 • 2回复 待解决
关于liteos-a一些问题想请教各位
8668浏览 • 2回复 待解决
HarmonyOS 是否支持指定一些字体?
291浏览 • 1回复 待解决
docker 线上使用一些问题
2513浏览 • 1回复 待解决
有没有新napi一些demo?
427浏览 • 3回复 待解决
HarmonyOS 有关Video组件一些问题
44浏览 • 1回复 待解决
HarmonyOS 咨询下Tab中一些写法
29浏览 • 1回复 待解决
DevEco Studio 升级后一些问题
10056浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人