http://www.sqlite.org/threadsafe.html
从上面的链接我了解到,SQLite 支持三种不同的线程模式:单线程、多线程和序列化。我只是想知道“Android中SQLite的默认线程模式是什么”?有什么方法可以务实地改变线程模式吗?如果是这样,我如何以及有什么优势?什么时候选择哪一个有一些样本?
提前致谢。
http://www.sqlite.org/threadsafe.html
从上面的链接我了解到,SQLite 支持三种不同的线程模式:单线程、多线程和序列化。我只是想知道“Android中SQLite的默认线程模式是什么”?有什么方法可以务实地改变线程模式吗?如果是这样,我如何以及有什么优势?什么时候选择哪一个有一些样本?
提前致谢。
默认模式 -Serialized
默认情况下 SqliteDatabase 是线程安全的,你可以在 Android Docs 上查看它,
setLockingEnabled(boolean lockingEnabled)
从文档 -
通过在关键部分周围使用锁来控制 SQLiteDatabase 是否是线程安全的。这是相当昂贵的,所以如果你知道你的数据库只会被一个线程使用,那么你应该将它设置为 false。默认值为真。
sqlite的线程模式可以在编译时、启动时和运行时进行配置。
运行时间覆盖开始时间,开始时间覆盖编译时间。除了,单线程模式一旦选择就不能被覆盖。请参阅sqlite 线程安全
Android在编译时使用序列化。请参阅sqlite Android.bp。
但是,从 4.2.2 开始,android 在启动时选择Multi-thread。参见android_database_SQLiteGlobal.cpp