gpt4 book ai didi

android - 有没有办法进行多线程sqlite事务并检查数据库锁定状态

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

我有一个正在执行大量 sqllite 事务的应用程序,我目前有点挂起,因为我在 UI 线程上执行 sqllite 操作...是的很糟糕...

所以我让每个项目都有一个线程并在其上执行,假设 sqllite api 足够聪明以先进先出它们..不......现在我得到数据库被锁定的异常

this says it should work

无需完全重写我的代码,并让事务列表排队并在同一个线程上执行它们(许多不同的类,会有点痛苦)

有没有办法让我检查,除非没有锁,否则不执行线程?锁检查本身或类似的东西可以使它工作,是有效的并且不是一个巨大的重写?

谢谢

最佳答案

您引用的我的回答似乎令人困惑。当您使用具有多个线程的相同数据库对象访问相同的 Android 数据库时,您无需执行任何特殊操作。在幕后,Sqlite 有它自己的锁定来保证数据库不会被破坏。引用my answer ;

Sqlite under Android is single threaded. Even if multiple threads were using the same database connection, my understanding is that they would be blocked from running concurrently. There is no way to get around this limitation

它有自己的锁定序列化请求。不幸的是,这意味着添加多个线程不会提高数据库的性能。

正如我在其他回答中提到的,您不能从多个线程对同一个数据库使用多个数据库对象,因为没有锁定,这会破坏您的数据库。

关于android - 有没有办法进行多线程sqlite事务并检查数据库锁定状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14929482/

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