关于Android SQLite3多线程并发问题,学习笔记。

最近有看到过Sqlite3的相关文章,在这做一下学习笔记。

关于sqlite的介绍,可以参照一下:http://blog.csdn.net/ghost5216/article/details/4863246

sqlite3数据库是一个数据库一个文件,所以当多进程访问操作同一数据库时,即与操作同一文件一样,文件锁问题。
对同个数据库进行多进程同时读是允许的,但多进程同时写是不允许的,如果一个进程已经正在写,其他进程就会写失败。sqlite3返回信息就是"Database is locked",错误码SQLITE_BUSY,sqlite3对高并发访问支持不好,多线程访问数据库会出现数据库锁定现象。

那么在并发的情况下,如何安全的访问sqlite数据库呢?

假设你已经有一个自己的SQLiteOpenHelper。

public class DatabaseHelper extends SQLiteOpenHelper { ... }

//Thread 1
Context context = getApplicationContext();
DatabaseHelper helper = new DatabaseHelper(context);
SQLiteDatabase database = helper.getWritableDatabase();
database.insert(…);
database.close();
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值