通过 C# 2.0 读取 CLR(我目前没有 3.0)
是否仍然如此:
如果一台计算机中只有一个 CPU,那么任何时候都只能运行一个线程。Windows 必须跟踪线程对象,并且每隔一段时间,Windows 必须决定接下来调度哪个线程以进入 CPU。这是必须每 20 毫秒左右执行一次的附加代码。当 Windows 使 CPU 停止执行一个线程的代码并开始执行另一个线程的代码时,我们称之为上下文切换。上下文切换相当昂贵,因为操作系统必须:
所以通过 C# 2.0 的 CLR 可以说我们在 Pentium 4 2.4ghz 1 core non-HT, XP 上。每 20 毫秒?在 CLR 线程或 Java 线程映射到 OS 线程的情况下,每秒最多只有 50 个线程可能有机会运行?
我已经读到在 SO 上的上下文切换在微秒内非常快,但是大致(大小风格的猜测)多久会说一个适度的 5 岁服务器 Windows 2003 Pentium Xeon 单核给操作系统提供上下文切换的机会?20ms 在正确的区域?
我不需要确切的数字我只是想确保它在正确的区域,对我来说似乎相当长。