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;
相关推荐
梦想的颜色14 分钟前
Redis数据类型全解析:从底层原理到生产实战
运维·数据库·redis·缓存·高并发·分布式锁·数据类型
C137的本贾尼20 分钟前
InnoDB 的物理世界:表空间、段、区与页
数据库
JdSnE27zv21 分钟前
EF Code First学习笔记:数据库创建
数据库·笔记·学习
我是一颗柠檬37 分钟前
【Redis】Redis性能优化Day14(2026年)
数据库·redis·性能优化
程序员老油条43 分钟前
用 AI 生成复杂 SQL:LangChain4j + 本地模型实践
数据库·人工智能·sql
IT邦德1 小时前
Oracle 26ai RAC 通过gold image RU打补丁
数据库·oracle
smith成长之旅1 小时前
08 | Mem0 框架分析: BM25 的 Sigmoid 归一化
数据库·python·算法
C137的本贾尼1 小时前
MySQL 整体架构与存储引擎对比
数据库·mysql·架构
C137的本贾尼1 小时前
【实战】分析一张真实业务表的 InnoDB 存储结构
java·大数据·数据库
超梦dasgg1 小时前
亿级数据 不停服务平滑迁移(生产环境实战方案)
java·数据库