0

私は .NET で並列プログラミングの基礎を学んでいますが、なぜ誰かがSpinLock同期プリミティブを使用する必要があるのか​​ 疑問に思っています。このメカニズムを使用すると、同期プリミティブのリリースを待機しているときに再スケジュールが回避されることを読みました (待機時間が短い場合はそれだけの価値があります) が、「有効性」を測定する方法はありますか? SpinLock誰かが「ほとんどの場合それを行うべきではない」と言ったという理由だけで、使用するかどうかを決定したくありません。

4

1 に答える 1

1

SpinLock を使用することで、実際にスレッドにビジー待機を行うように指示します。スレッドはブロック状態にならず、スピンによって CPU サイクルが浪費され、CPU がより有用な作業を実行できなくなります。マルチコア マシンで実行することが事前にわかっていて (シングル コア マシンでのスピン ロックはお勧めできません)、比較的短時間スピンすることがわかっている場合 (スレッドをブロック状態に移動するのは CPU集中的な)それなら大丈夫かもしれません

于 2013-07-25T14:14:57.480 に答える