【发布时间】:2010-09-02 09:57:47
【问题描述】:
我需要在 Windows 上选择具有 2 个线程的进程或具有 1 个线程的 2 个进程。我对时间片很感兴趣。 Windows 运行线程,因此上下文切换将在任何一种情况下。我想知道它在两种情况下运行每个线程的时间是否相同?谢谢。
【问题讨论】:
标签: windows multithreading process time
我需要在 Windows 上选择具有 2 个线程的进程或具有 1 个线程的 2 个进程。我对时间片很感兴趣。 Windows 运行线程,因此上下文切换将在任何一种情况下。我想知道它在两种情况下运行每个线程的时间是否相同?谢谢。
【问题讨论】:
标签: windows multithreading process time
Windows 调度线程,所以是的,它们将是相同的。
【讨论】:
Windows 调度程序不关心线程来自哪个进程,只关心线程优先级是什么。如果您有一个具有线程 T1 和 T2 的进程与一对进程 P1(相当于 T1)和 P2(相当于 T2),那么从调度程序的角度来看没有区别,前提是 P1 和 T1 具有相同的优先级,和 P2 和 T2 一样。
但是,Windows 会提高当前前台应用程序的优先级,因此前台进程中的线程将比后台进程中的线程获得更多或更长的时间片。
如果您的应用程序受到此优先级提升的影响,那么将其划分为单独的进程意味着只有一个进程可以从提升中受益。如果您在一个进程中使用多个线程,那么所有线程都将从提升中受益。
【讨论】: