gpt4 book ai didi

multithreading - Windows 上的上下文切换之间的时间范围是多久?

转载 作者:行者123 更新时间:2023-12-01 11:59:42 35 4
gpt4 key购买 nike

通过 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 在正确的区域?

我不需要确切的数字,我只想确保它在正确的区域,对我来说似乎很长。

最佳答案

所谓的 Quantum 取决于一些事情,包括操作系统在运行过程中所做的性能调整;例如,前台进程被赋予更高的优先级,并且可以被赋予[比默认值长 3 倍的量程。服务器和客户端 SKU 之间也存在差异,通常客户端的默认时间为 30 毫秒,而服务器为 180 毫秒。

因此,需要尽可能多的 CPU 的前台进程可能会在上下文切换之前获得 90 毫秒的量子。然后操作系统可能会决定它不需要切换并让量子继续。

关于multithreading - Windows 上的上下文切换之间的时间范围是多久?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875178/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com