【发布时间】:2012-07-09 22:51:05
【问题描述】:
假设我共享了@987654322@ 变量。线程A 每秒更新数千次。在另一个线程B 中,每次发生这种情况时,我都希望以某种方式收到有关“更新”的通知。
我试图完全避免通知,只使用while(true) 循环,但这会显着降低我的程序lock-free calc: how to sum N double numbers that are changing by other threads? 的速度,这可能是因为“同时你不断地从内存中加载同一个数组,这并不是真的对性能有好处,因为内存带宽有限。”
我也尝试过使用Monitor 类,但它也很慢,当Monitor.TryEnter 返回false 时,我发现最多延迟 1-2 毫秒。
我现在认为我需要使用无锁技术进行通知,可能使用SpinLock 或其他方式?
【问题讨论】:
标签: c#