在多线程环境中,如果我们同时从不同线程对同一个实体(对于同一个主键)执行realm.write{},会发生什么? [已关闭]

问题描述 投票:0回答:2

Realm ios:在多线程环境中,如果我们同时从不同线程对同一领域实体(对于同一主键)执行realm.write{},会发生什么?

简而言之,realm 如何处理竞争条件?

ios realm
2个回答
2
投票

从不同线程写入 Realm 时,请记住写入操作是阻塞且同步的。

它们本质上是事务性的,要么完成,要么失败;它永远不是部分的,这就是为什么写操作被标记为throws,这样你就可以处理失败的情况。

简而言之,竞争条件不存在,因为一项操作必须在另一项操作发生之前完成。

它们是同步的,因此一旦写操作 A 成功并完成,操作 B 将被执行。

文档中的 Writes 部分提供了更多信息。


0
投票

每个连接到数据库的用户都会看到数据库在特定时刻的快照。在更改完成之前(或者用数据库术语来说:直到事务提交之前),写入者所做的任何更改都不会被数据库的其他用户看到。

© www.soinside.com 2019 - 2024. All rights reserved.