Realm ios:在多线程环境中,如果我们同时从不同线程对同一领域实体(对于同一主键)执行realm.write{},会发生什么?
简而言之,realm 如何处理竞争条件?
从不同线程写入 Realm 时,请记住写入操作是阻塞且同步的。
它们本质上是事务性的,要么完成,要么失败;它永远不是部分的,这就是为什么写操作被标记为throws,这样你就可以处理失败的情况。
简而言之,竞争条件不存在,因为一项操作必须在另一项操作发生之前完成。
它们是同步的,因此一旦写操作 A 成功并完成,操作 B 将被执行。
文档中的 Writes 部分提供了更多信息。
每个连接到数据库的用户都会看到数据库在特定时刻的快照。在更改完成之前(或者用数据库术语来说:直到事务提交之前),写入者所做的任何更改都不会被数据库的其他用户看到。