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;
相关推荐
杨浦老苏几秒前
将Waline从LeanCloud迁移到MongoDB
数据库·博客·blog·waline
normanhere3 分钟前
华为交换机堆叠问题总结
服务器·数据库·华为
程序媛_文乐4 分钟前
【redis超过maxmemory值解决方法】
数据库·redis·缓存
semantist@语校12 分钟前
第六十篇|语言学校 Prompt 工程化实践:从字段解释到判断边界的结构设计(以日生日本语学园为例)
大数据·数据库·人工智能·百度·ai·prompt·知识图谱
予枫的编程笔记13 分钟前
【Redis核心原理篇1】Redis 持久化:RDB、AOF、混合持久化,该怎么选?
数据库·redis·缓存·持久化·aof·rdb
数据知道15 分钟前
PostgreSQL 实战:EXPLAIN 执行计划详解
数据库·postgresql
万象.3 小时前
redis数据结构set和zset的基本指令
数据结构·数据库·redis
全栈测试笔记10 小时前
异步函数与异步生成器
linux·服务器·前端·数据库·python
Lee_SmallNorth10 小时前
变态需求之【角色不同访问数据库的用户不同】
java·开发语言·数据库
李慕婉学姐10 小时前
Springboot连锁火锅管理及预测系统sh5s1gn1(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端