iOS アプリケーションで SQLite 3 を使用しています。多くの読み取り/書き込み操作が必要であり、それらの多くは同時に試行されます。これらの関数のほとんどは別々のスレッドで実行されていますが、同じデータベースにアクセスしています。
私が考えたいくつかの方法を次に示します。
すべてのデータベース アクセス (読み取り/書き込み) でフラグを設定し
database_open=YES
、それが true であることが判明した場合は、数秒後に再試行します。関数をデータベース層自体に置くことができます。すべてのデータベース操作を同じスレッドで実行します。ただし、私の使用例では、いくつかの HTTP 呼び出しが終了し、取得したデータを SQLite に保存するのを待つ必要があります。この方法では、これらすべてのサーバー呼び出しを同期させる必要があります。最高のアイデアではありません。
私が間違った方向に考えているかどうかを提案してください。