1

参照してください:https ://stackoverflow.com/a/3865121/1071840

複数のスレッドがリクエストを単一のキューにプッシュし、バッファ書き込みスレッドがキューの読み取り/更新に排他的にアクセスできる場合、このキューへの書き込みと読み取りを同時に行うことができ、ロックレスシリアル化を実現できることを理解しています。

しかし、私の質問は、スレッドがキュー自体のロックを取得する必要がないということです。リクエストされた順番を維持したい。

[宿題の質問ではありません。非同期書き込みを使用してマルチスレッド環境で同時実行の問題をどのように軽減するかを理解しようとしています]

4

1 に答える 1

1

しかし、私の質問は、スレッドがキュー自体のロックを取得する必要がないということです。

必ずしも。完全にロックレスであるか、キュー全体をロックするよりもはるかにきめ細かいロックを使用する同時キュー実装(.NETのこの実装やPPLのこの実装など)があります。これにより、全体的なスループットを劇的に向上させることができます。

于 2013-01-24T18:27:26.200 に答える