11

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

上記のリンクから、SQLiteはシングルスレッド、マルチスレッド、シリアル化の3つの異なるスレッドモードをサポートしていることがわかりました。「AndroidのSQLiteのデフォルトのスレッドモードとは何ですか?」を知りたいだけです。スレッドモードを実用的に変更する方法はありますか?もしそうなら、私が得る利点はどのようにそして何ですか?いくつかのサンプルケースでどれを選択するのですか?

前もって感謝します。

4

2 に答える 2

6

デフォルトモード -Serialized

デフォルトでは、SqliteDatabaseはスレッドセーフです。Androidドキュメントで確認できます。

setLockingEnabled(boolean lockingEnabled)

ドキュメントから-

クリティカルセクションの周りのロックを使用して、SQLiteDatabaseをスレッドセーフにするかどうかを制御します。これはかなり高価なので、DBが単一のスレッドでのみ使用されることがわかっている場合は、これをfalseに設定する必要があります。デフォルトはtrueです。

于 2012-06-23T08:04:42.583 に答える
0

sqliteのスレッドモードは、コンパイル時、開始時、および実行時に構成できます。

実行時は開始時をオーバーライドし、開始時はコンパイル時をオーバーライドします。ただし、シングルスレッドモードは、一度選択するとオーバーライドできません。sqliteスレッドセーフを参照してください

Androidはコンパイル時にシリアル化されたものを使用します。sqliteAndroid.bpを参照してください。

ただし、4.2.2から開始し、androidは開始時にマルチスレッドを選択します。android_database_SQLiteGlobal.cppを参照してください

于 2021-08-26T04:34:18.550 に答える