2 つの個別のスレッドと 1 つのキューで構成されるマルチスレッド アプリケーションがあるとします。スレッド 1 は計算を終了し、結果をキューに入れます。一方、スレッド 2 は常にループしており、キューに処理するデータがあるかどうかを確認しています。
何らかの理由でプログラムに障害が発生したり、コンピューターが再起動した場合に備えて、キュー内の値を一時的にディスクに保存するにはどうすればよいですか? 最初のスレッドが終了した後に値を SQLite DB に保存し、スレッド 2 が終了した後に値を削除するのは合理的でしょうか?
SQLiteが実際に最善の解決策である場合、行に処理済みであることを示すフラグを挿入し、30分ごとに別のスレッドを通過させて、フラグが付けられた行を削除するか、その行をすぐに削除する方が速いですか?