【发布时间】:2011-09-16 05:09:21
【问题描述】:
我在嵌入式系统上使用 SQLite3,在 Qt 应用程序中使用 x86。当多个线程尝试读取/写入数据库时,我遇到了常见错误“数据库已锁定”。
我阅读了其他答案中建议的 this 文章,但我正在为每个线程创建不同的连接。
通过稍微调整 QSQLITE_BUSY_TIMEOUT 选项(到一个非常大的值:10000000),我在 x86 系统和嵌入式系统上解决了这个问题,但在后一种情况下,仅在不使用事务时才解决。不幸的是,我需要为每个线程的所有工作使用事务。
我的问题是:SQLite3 不支持在使用事务时同时读取/写入数据库吗?为什么它不简单地等待所有必要的时间来获取锁?也许我没有正确设置它?
【问题讨论】:
标签: multithreading qt sqlite