首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >领域MVCC行为

领域MVCC行为
EN

Stack Overflow用户
提问于 2016-11-11 20:49:13
回答 1查看 59关注 0票数 0

在领域中,如果事务A和B都以以下方式运行:

把第一项作为“第一”=>做一些长时间运行的操作=>删除“第一”

威尔:

  • 交易A和B对于“第一”有相同的价值吗?
  • 事务A阻止事务B,如果它运行“优先”?

我希望A阻止整个B,因为它“写”,然后B运行,并为"First“获得一个不同的值,但是看起来锁的粒度比它细,B在到达delete语句之前不会被阻塞。

这是否意味着他们只会带着各自独立的DB副本运行,获得"First“的相同值,然后沿着对方运行,然后B会抛出,因为在A已经删除之后,B会尝试删除"First”?

EN

回答 1

Stack Overflow用户

发布于 2016-11-11 22:56:49

交易互相阻塞。两个领域实例不能同时处于“写”模式。如果事务正在进行中,则另一个线程的领域实例将被阻塞,并被迫等待直到另一个事务完成。这就是为什么不鼓励UI线程领域事务。

在写模式期间,领域随时都会看到“实时最新数据”,这意味着即使您修改了数据库,底层的RealmResults也是实时更新的。(这是Java绑定中的一种“黑客”。)

事务A块事务B如果它先运行的话?

这就赢了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40555991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档