【发布时间】:2020-07-09 05:24:55
【问题描述】:
最近我开始在 C# 中使用任务并行库学习并行编程,我读到 SpinLock 会浪费 CPU 周期并一直旋转直到获得锁为止。另外在比较方法时: Thread.Sleep 和 Thread.SpinUntil 我发现 Thread.sleep 释放调度程序,以便调度程序可以调度其他线程。 这对锁、监视器、互斥锁和互锁也适用吗? CLR 是否允许调度程序在 lock、Monitor、Mutex、Interlocked 等待进入临界区时调度其他线程?
【问题讨论】:
-
“发布调度程序” 不是一个东西。 “CLR 是否允许调度程序调度其他线程...”是的。然而,回答这个问题非常困难,因为术语的使用不寻常,而且很难理解您实际在问什么或为什么
标签: c# .net multithreading parallel-processing synchronization