私は、読み取りと書き込みの目的で 2 つのスレッドからアクセスできるグローバル配列を持つコードに取り組んでいます。
一連のインデックスが読み書きされるバッチ処理はないので、配列全体をロックするか、現在使用している配列インデックスのみをロックするかを考えています。
最も簡単な解決策は、配列を CS と見なし、その周りに大きなファット ロックを配置することですが、これを回避してインデックスをロックすることはできますか?
乾杯。
私は、読み取りと書き込みの目的で 2 つのスレッドからアクセスできるグローバル配列を持つコードに取り組んでいます。
一連のインデックスが読み書きされるバッチ処理はないので、配列全体をロックするか、現在使用している配列インデックスのみをロックするかを考えています。
最も簡単な解決策は、配列を CS と見なし、その周りに大きなファット ロックを配置することですが、これを回避してインデックスをロックすることはできますか?
乾杯。
現実的な実行条件でプロファイルを作成しない限り、何が最適かを知る方法はありません。グループ内のさまざまな数の要素をロックできる配列のようなクラスを実装することをお勧めします。次に、これらのグループのサイズを微調整します。
別のオプションは、アクティブなオブジェクトを使用してすべての読み取り/書き込み操作をキューに入れることです。これにより、すべてのアクセスがシーケンシャルになり、非同時配列型を使用してデータを格納できることを意味します。内部で何らかの並行キュー データ構造が必要になります。