我的sqlite数据库很简单:一张表,两列。一列是图片的网址,另一列是图片的字节。
然后,我有两个线程。
一个线程(写线程)正在下载非常大的图像(例如5MB)。并且在下载图像时,线程将图像的url和字节插入db中。
另一个线程(读取线程)在循环中每1秒随机查询图像。
我的问题是:
有时,“编写线程”会阻止“阅读线程”吗?
我已经设置了PRAGMA locking_mode=NORMAL
;
我有这个问题,因为我遭受了阻塞,并认为如果将locking_mode设置为NORMAL,则不应存在阻塞。
我的意思是,我希望它可能是这样的:我有一个后台线程只是以最低优先级来处理写作。这样,即使插入花费大量时间(例如10秒),读取线程也不会受到影响。
有什么办法吗?还是我想念的东西?
谢谢
最佳答案
使用WAL mode
关于multithreading - SQLite-插入操作会阻止读取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966973/