sqlite3多线程操作问题

在项目中使用sqlite3,有时会报database is locked

两种方式

1、多线程读,多线程写,只使用共同一个数据库连接,即使用同一个SQLiteHelper连接,调用sqlite3_busy_timeout

2、多线程读,单线程写,每个线程使用各自独立的数据库连接,但是需要开启wal模式,以开启数据库连接池

开启wal通过如下语句

sql 复制代码
pragma synchronous=NORMAL;
pragma journal_mode=WAL;
pragma wal_autocheckpoint=5000;
相关推荐
engchina29 分钟前
使用Express.js和SQLite3构建简单TODO应用的后端API
javascript·sqlite·express
yours_Gabriel1 小时前
【Redis_1】初识Redis
数据库·redis·缓存
萝卜青今天也要开心2 小时前
读书笔记-《Redis设计与实现》(二)单机数据库实现(上)
java·数据库·redis·学习·缓存
@Java小牛马3 小时前
Redis真的是单线程的吗?
数据库·redis·缓存·reactor·单线程·多线程
biubiubiu07064 小时前
Redis缓存穿透,雪崩,击穿
数据库·redis·缓存
lingllllove8 小时前
ubuntu22.04防火墙策略
数据库·postgresql
程序猿小D11 小时前
第三百五十八节 JavaFX教程 - JavaFX滑块
java·前端·数据库
memorycx11 小时前
MySQL(3)
数据库·sql
My LQS11 小时前
使用 EXISTS 解决 SQL 中 IN 查询数量过多的问题
数据库·sql
weixin_3077791315 小时前
PySPARK带多组参数和标签的SparkSQL批量数据导出到S3的程序
大数据·数据仓库·python·sql·spark