领域 - 从不同的线程写 - RxJava

时间:2017-11-16 19:04:20

标签: android multithreading realm

我想使用Realm,我需要从不同的线程写入数据。我读了关于Realm的帖子。 Realm与Git类似。你能解释一下数据与冲突的融合在Realm中的作用吗?谢谢

1 个答案:

答案 0 :(得分:1)

  

您能解释一下数据与冲突的合并在Realm中是如何工作的吗?

如果我们谈论领域本地数据库(领域移动数据库),并且关于领域移动平台:

  • 事务在线程和进程之间是阻塞的,因此一次只能有一个写事务。因此,当提交时,它将成为新版本。合并场景是不可能的。当写入事务处于打开状态时,在事务中,您始终可以看到数据库的最新状态,并且无法看到旧版本。

如果我们谈论的是Realm移动平台:

  • 如果同一数据发生多个离线交易,之后才会同步,conflict resolution会根据运营转型的规则发生:

    • 删除总是赢:如果一方删除一个对象,它将始终保持删除状态,即使另一方稍后对其进行了更改。

    • 上次更新获胜。如果双方更新同一属性,则该值将最后更新。

    • 列表中的插入按时间排序。如果在同一位置插入两个项目,则首先插入的项目将在另一个项目之前结束。