11

http://www.sqlite.org/threadsafe.html

从上面的链接我了解到,SQLite 支持三种不同的线程模式:单线程、多线程和序列化。我只是想知道“Android中SQLite的默认线程模式是什么”?有什么方法可以务实地改变线程模式吗?如果是这样,我如何以及有什么优势?什么时候选择哪一个有一些样本?

提前致谢。

4

2 回答 2

6

默认模式 -Serialized

默认情况下 SqliteDatabase 是线程安全的,你可以在 Android Docs 上查看它,

setLockingEnabled(boolean lockingEnabled)

从文档 -

通过在关键部分周围使用锁来控制 SQLiteDatabase 是否是线程安全的。这是相当昂贵的,所以如果你知道你的数据库只会被一个线程使用,那么你应该将它设置为 false。默认值为真。

于 2012-06-23T08:04:42.583 回答
0

sqlite的线程模式可以在编译时、启动时和运行时进行配置。

运行时间覆盖开始时间,开始时间覆盖编译时间。除了,单线程模式一旦选择就不能被覆盖。请参阅sqlite 线程安全

Android在编译时使用序列化。请参阅sqlite Android.bp

但是,从 4.2.2 开始,android 在启动时选择Multi-thread。参见android_database_SQLiteGlobal.cpp

于 2021-08-26T04:34:18.550 回答