腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
移动开发的那些事儿
专栏作者
举报
22
文章
31450
阅读量
15
订阅数
订阅专栏
申请加入专栏
全部文章(22)
android(7)
编程算法(5)
java(4)
textview(3)
http(2)
https(2)
bash(1)
数据库(1)
github(1)
linux(1)
bash 指令(1)
容器(1)
存储(1)
缓存(1)
网络安全(1)
hashmap(1)
tcp/ip(1)
单元测试(1)
socket编程(1)
数据分析(1)
app(1)
cpu(1)
thread(1)
ui(1)
view(1)
搜索文章
搜索
搜索
关闭
Android Sqlite并发问题
数据库
如上异常堆栈中的错误信息error code 5: database is locked,经过查找发现code为5代表sqlite中的SQLITE_BUSY异常,详见:https://www.sqlite.org/rescode.html#busy,这里面说,SQLITE_BUSY(5)异常是一个数据库文件在被其他不同的数据库连接进行并发操作的时候写操作将补发继续,通常是多个进程的不同数据库连接对同一个数据库进行并发操作,例如进程A在进行耗时的数据库事务,而于此同时进程B也要进行一个数据库事务,这时候进程B就会直接返回SQLITE_BUSY的错误码,因为sqlite只能支持同一个时刻只能有一个写操作,所以解决这个问题的方法就是避免不同进程分别对同一个数据库各自开启一个database connection,并且对相同的数据库进行并发操作,如果有这种需求,那么应该全部都交给一个进程来对数据库进行操作,其他的进程想操作这个数据库就通过contentprovider的方式来实现数据共享,使用contentprovider的方式是最安全的,如果是通过shareUserId的方式来实现数据库共享也是不安全的,因为:
大大大大大先生
2018-09-04
1.4K
0
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
立即学习
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档