Sqlite:修改begin-commit中的锁定条件

时间:2015-03-19 06:15:04

标签: multithreading sqlite

根据sqlite documentation,当我们使用begin - commit使用延迟事务时,数据库自第一次写入后就被锁定。

而且很可能这个锁存在那里直到事务被提交。所以,如果我做begin并完成了第一次写入,并且commit在180秒后出现,我的数据库将被锁定,直到此时为止。因此,我不能在此时从另一个线程执行写操作。

有没有什么方法可以告诉Sqlite在commit之前没有持有锁,只有在事务中写入时才获取锁?因此,我有一些机会在该事务期间从另一个线程并发写入。或者有任何解决方案吗?

我在嵌入式环境中使用C Sqlite库。

1 个答案:

答案 0 :(得分:0)

允许其他人写入您正在阅读的数据会导致数据不一致。

要同时允许作者和读者,请启用WAL mode