在我的(测试)应用程序中,我有多个线程,其中每个线程一个接一个地进行多个SELECT
调用。每个线程都有自己的连接到(相同的)SQLite数据库。
对于几个电话,一切正常,但后来我从SQLITE_BUSY
开始收到sqlite3_step()
个错误(“数据库被锁定”)。
我知道我可以用sqlite3_busy_timeout()
来解决这个问题,但我想知道为什么会发生这种情况或者这是否是预期的行为。
请注意我仅执行读取操作(除非SELECT
现在被认为是写操作),因此SQLite应该只获取共享锁,不应该吗? / p>
我在Windows(7 x64)上运行SQLite 3.7.13。