3

それぞれが別々のスレッドで実行されている複数のAPIを呼び出し、ロックを発生させずにsqliteデータベースへの応答からそれぞれのデータを挿入する必要があります。誰かが私が参照できる実用的な例に関してこの点で私を助けることができますか?

4

1 に答える 1

8

それぞれが別々のスレッドで実行されている複数のAPIを呼び出し、ロックを発生させずにsqliteデータベースへの応答からそれぞれのデータを挿入する必要があります。

特別なことをする必要はありません。SQLiteDatabaseアプリケーションレベルでロックを行わなくても、複数のスレッドで同じオブジェクトを利用できます。Sqliteは、内部で独自のロックを実行します。デッドロックが発生することはありませんが、一方のスレッドはもう一方のスレッドが挿入を完了するのを待つ必要があります。

これらの質問/回答を参照してください。

AndroidでのSqliteはシングルスレッドです。複数のスレッドが同じデータベース接続を使用している場合でも、それらが同時に実行されるのはブロックされると私は理解しています。この制限を回避する方法はありません。同じデータベースへの2つの接続を開くと、データベースの更新が調整されないため、データベースが破損します。

于 2012-09-10T11:49:58.667 に答える