http://www.sqlite.org/threadsafe.html
上記のリンクから、SQLiteはシングルスレッド、マルチスレッド、シリアル化の3つの異なるスレッドモードをサポートしていることがわかりました。「AndroidのSQLiteのデフォルトのスレッドモードとは何ですか?」を知りたいだけです。スレッドモードを実用的に変更する方法はありますか?もしそうなら、私が得る利点はどのようにそして何ですか?いくつかのサンプルケースでどれを選択するのですか?
前もって感謝します。
http://www.sqlite.org/threadsafe.html
上記のリンクから、SQLiteはシングルスレッド、マルチスレッド、シリアル化の3つの異なるスレッドモードをサポートしていることがわかりました。「AndroidのSQLiteのデフォルトのスレッドモードとは何ですか?」を知りたいだけです。スレッドモードを実用的に変更する方法はありますか?もしそうなら、私が得る利点はどのようにそして何ですか?いくつかのサンプルケースでどれを選択するのですか?
前もって感謝します。
デフォルトモード -Serialized
デフォルトでは、SqliteDatabaseはスレッドセーフです。Androidドキュメントで確認できます。
setLockingEnabled(boolean lockingEnabled)
ドキュメントから-
クリティカルセクションの周りのロックを使用して、SQLiteDatabaseをスレッドセーフにするかどうかを制御します。これはかなり高価なので、DBが単一のスレッドでのみ使用されることがわかっている場合は、これをfalseに設定する必要があります。デフォルトはtrueです。
sqliteのスレッドモードは、コンパイル時、開始時、および実行時に構成できます。
実行時は開始時をオーバーライドし、開始時はコンパイル時をオーバーライドします。ただし、シングルスレッドモードは、一度選択するとオーバーライドできません。sqliteスレッドセーフを参照してください
Androidはコンパイル時にシリアル化されたものを使用します。sqliteAndroid.bpを参照してください。
ただし、4.2.2から開始し、androidは開始時にマルチスレッドを選択します。android_database_SQLiteGlobal.cppを参照してください