【发布时间】:2011-11-24 11:32:05
【问题描述】:
如果你进入任务管理器,右键单击一个进程,并将优先级设置为实时,它通常会阻止程序崩溃,或者让它们运行得更快。
在编程上下文中,这是做什么的?
【问题讨论】:
-
它按照它所说的去做...给程序一个更高(或更低)的优先级。 :-)
标签: windows winapi process taskmanager
如果你进入任务管理器,右键单击一个进程,并将优先级设置为实时,它通常会阻止程序崩溃,或者让它们运行得更快。
在编程上下文中,这是做什么的?
【问题讨论】:
标签: windows winapi process taskmanager
每个线程都有一个由线程的优先级决定的基本优先级 优先级值及其进程的优先级。该系统采用 所有可执行线程的基本优先级,以确定哪个 线程获取下一个 CPU 时间片。 SetThreadPriority 函数 允许设置线程相对于 其进程的优先级。有关详细信息,请参阅调度 优先事项。
【讨论】:
它通过更改操作系统任务调度程序中赋予此进程的权重来工作。您的 CPU 一次只能执行一条指令(说得非常非常简单),操作系统的工作是不断交换每个正在运行的进程的指令。通过提高或降低优先级,您会影响相对于当前正在执行多任务的其他应用程序在 CPU 中分配的时间。
【讨论】:
它告诉寡妇调度程序在为您的进程分配执行时间片时或多或少是贪婪的。实时执行使它永远不会产生执行(根据 MSDN,即使对驱动程序也没有),如果它等待外部事件但没有自己的产生(如 Sleep、SwitchToThread 或 @987654323 @),因此应避免使用实时,除非您知道应用程序会正确处理它。
【讨论】: