【发布时间】:2015-03-19 17:39:02
【问题描述】:
根据sqlite documentation,当我们使用begin - commit 使用延迟事务时,数据库在第一次写入后被锁定。
而且很可能这个锁在事务提交之前一直存在。因此,如果我做了begin 并进行了第一次写入,而commit 在 180 秒后出现,我的数据库将一直锁定到此时。因此,直到此时我才能从另一个线程执行写入操作。
有什么方法可以告诉 Sqlite 在commit 之前不要持有锁,并且只有在事务中写入时才获取锁?这样我就有机会在该事务期间从另一个线程并发写入。或者有什么解决办法?
我在嵌入式环境中使用C Sqlite 库。
【问题讨论】:
标签: multithreading sqlite