2

バリューストアへのマルチスレッドアクセスを処理するための最善の方法に関するアドバイスや提案を期待しています。

私のローカルバリューストレージは、現在使用中のオブジェクトを保持するように設計されています。オブジェクトが使用されていない場合は、ストアから削除されます。

値はthread1を介してストアに送られ、ストアへのエントリがリスナーに通知され、値が保存されます。thread1に入る値は、まったく新しい値か、既存の値の更新のいずれかになります。

タイマーは、現在使用されていない値をストアから定期的に削除するために使用されます。したがって、この値の残りは、仲介者によってローカルに保持されているIDだけです。

これで、thread2のアクティブな要素がウェイクアップし、認識している値IDのセットを渡すことによって値のセットにアクセスしようとする場合があります。一部の値はすでに保存されており(素晴らしい)、一部は保存されていない可能性があります(悲しい面)。まだ保存されていない値は、外部ソースから取得されます。

私の主な問題は、まだ保存されておらず、現在クエリされているアイテムが、クエリが完了する前にthread1に到着する可能性があることです。

クエリが実行されている間は、時間がかかる可能性があるため、ストアへのアクセスをロックしないようにしたいと思います。

4

1 に答える 1