首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多线程数据库被锁定Sqlite windows phone 8.1 RT

问多线程数据库被锁定Sqlite windows phone 8.1 RT
EN

Stack Overflow用户
提问于 2015-08-20 23:22:48
回答 2查看 570关注 0票数 0

我不能用多线程访问数据库。其异常数据库已锁定或数据库正忙。我不明白为什么当我读写不同的表时数据库会被锁住。我尝试使用下面的代码来实现多线程

代码语言:javascript
复制
SQLite3.Config(SQLite3.ConfigOption.MultiThread);

这不管用。有人知道吗?我太需要它了!

EN

回答 2

Stack Overflow用户

发布于 2015-08-20 23:32:30

如果你有一个多线程的应用程序,那么两个线程都可以自由地更新数据库。但是在DB内部,第一次更新将锁定您试图更新的行,如果第二次更新也试图处理锁定的行,那么您有可能获得“锁定”或“繁忙”,如果第一次更新请求花费的时间超过x,其中"x“是可配置的。

票数 0
EN

Stack Overflow用户

发布于 2015-08-20 23:34:25

从SQLite web site

SQLite支持无限数量的并发读取器,但它在任何时刻都只允许一个写入器。在许多情况下,这不是问题。编写器排队。每个应用程序都会快速完成其数据库工作并继续运行,并且锁的持续时间不会超过几十毫秒。但有些应用程序需要更多的并发性,这些应用程序可能需要寻求不同的解决方案。

因此,您可以使用来自不同线程的SQL进行读取,但不能用于并发写入。在stackoverflow中有很多关于这个问题的答案。请参阅示例:How to use SQLite in a multi-threaded application?

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

https://stackoverflow.com/questions/32122229

复制
相关文章

相似问题

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