gpt4 book ai didi

winapi - Win32线程调度

转载 作者:行者123 更新时间:2023-12-03 00:48:50 28 4
gpt4 key购买 nike

据我了解,Windows 线程调度程序不会区分属于两个不同进程的线程,只要它们都具有相同的基本优先级。我的问题是,如果我有两个应用程序,一个只有一个线程,另一个有 50 个具有相同基本优先级的线程,这是否意味着第二个进程比第一个进程享有更多的 CPU 时间?

最佳答案

Windows 中的调度是按线程粒度进行的。这种方法背后的基本思想是进程并不运行,而只是提供资源和线程运行的上下文。回到你的问题,因为调度决策是严格基于线程做出的,所以没有考虑线程属于哪个进程。在您的示例中,如果进程 A 有 1 个可运行线程,进程 B 有 50 个可运行线程,并且所有 51 个线程都具有相同的优先级,则每个线程将获得 1/51 的 CPU 时间 - Windows 不会给出 50将 % 的 CPU 分配给进程 A,将 50% 的 CPU 分配给进程 B。要了解线程调度算法,您必须首先了解 Windows 使用的优先级。您可以refer此处供快速引用。

尝试阅读Windows Internals以便深入理解。

关于winapi - Win32线程调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/656959/

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