gpt4 book ai didi

java - 如果在 android 中的 SQLite 事务期间,第二个线程尝试在同一个表上进行事务,会发生什么情况?

转载 作者:行者123 更新时间:2023-11-30 11:46:12 25 4
gpt4 key购买 nike

我不太了解 Android 中 SQLite 事务的正确使用模式。

假设方法 A 启动了一个事务。在事务执行期间,另一个方法 B 将尝试在同一张表(可能在同一行)上执行事务。

会发生什么?

方法B是否会“等待”直到方法A完成事务,然后执行事务?还是方法B交易会失败?

我该如何正确处理?

更准确地说:

  • 方法 A 应该查询(在事务内)某一行是否已经存在,如果存在,则返回该行,如果该行尚不存在,则应插入该行,并返回新插入的行。
  • 方法 B 应查询(在事务内)某行是否已存在,更新该行,如果该行尚不存在,方法 B 应插入该行。

这个想法是为了确保,无论首先执行哪个方法,都已经插入或更新了该特定行我什至不确定,如果这些可以在 SQLite 事务级别上实现,或者我是否必须在 Java 中同步方法?

如果是这样,任何人都可以发布一个例子,这样的同步必须如何用 Java 编码?

最佳答案

如果“A”在事务中修改了一个表,“B”应该被阻塞(在 SQLite 本身内部)直到“A”被提交。除了处理持久数据外,它与 java 同步非常相似。一些细节取决于隔离级别

http://en.wikipedia.org/wiki/Isolation_(database_systems )

关于java - 如果在 android 中的 SQLite 事务期间,第二个线程尝试在同一个表上进行事务,会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9935856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com