double変数を共有しているとします。スレッドAは、毎秒数千回更新します。別のスレッドBでは、これが発生するたびに「更新」について何らかの形で通知したいと考えています。
通知を完全に回避してwhile(true)ループのみを使用しようとしましたが、これによりプログラムのロックフリー計算が大幅に遅くなりました: 他のスレッドによって変更されている N 個の倍精度数を合計する方法は? おそらく、「その間、同じ配列をメモリから何度もロードし続けますが、メモリ帯域幅が限られているため、パフォーマンスにはあまり適していません。」
classも使用しMonitorてみましたが、かなり遅く、Monitor.TryEnterreturnのときに最大 1 ~ 2 ミリ秒の遅延が見られましたfalse。
ロックフリーのテクニックを使用して通知を行う必要があると思います。おそらくSpinLockまたは何か他のものを使用していますか?