首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是‘实时’进程优先级设置?

什么是‘实时’进程优先级设置?
EN

Stack Overflow用户
提问于 2009-11-03 05:59:10
回答 7查看 383.2K关注 0票数 78

根据我在过去读到的内容,我们鼓励您不要通过编程方式更改Windows应用程序的优先级,如果您这样做了,您永远不应该将它们更改为“实时”。

与“高”和“高于正常”相比,“实时”进程优先级设置的作用是什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-11-03 11:07:36

实时优先级线程永远不会被定时器中断抢占,并且以比系统中任何其他线程更高的优先级运行。因此,CPU限制的实时优先级线程可能会完全毁掉一台机器。

创建实时优先级线程需要权限(SeIncreaseBasePriorityPrivilege,因此只能由管理用户完成。

对于Vista及更高版本,对于需要以实时优先级运行的应用程序来说,一种选择是使用Multimedia Class Scheduler Service (MMCSS)并让它管理您的线程优先级。MMCSS将防止您的应用程序使用过多的CPU时间,因此您不必担心机器会损坏。

票数 84
EN

Stack Overflow用户

发布于 2009-11-03 06:01:21

简单地说,“实时”优先级级别高于“高”优先级级别。我认为没有比这更多的东西了。哦,是的,你必须有SeIncreaseBasePriorityPrivilege才能把一个线程放到实时类中。

Windows有时会出于各种原因提高线程的优先级,但它不会将线程的优先级提升到另一个优先级级别。它也不会提高实时优先级类中线程的优先级。因此,高优先级线程不会自动临时提升到实时优先级类中。

Russinovich关于Windows如何处理优先级的"Inside Windows“一章是一个很好的资源,可以用来了解它是如何工作的:

  • http://web.archive.org/web/20140909124652/http://download.microsoft.com/download/5/b/3/5b38800c-ba6e-4023-9078-6e9ce2383e65/C06X1116607.pdf

请注意,在正常的Windows系统上,拥有实时优先级的线程绝对没有问题--它们不一定适用于在专用机器上运行的特殊进程。我认为多媒体驱动程序和/或进程可能需要具有实时优先级的线程。然而,这样的线程不应该需要太多的CPU -它应该在大多数时间内阻塞,以便正常的系统事件得到处理。

票数 26
EN

Stack Overflow用户

发布于 2009-11-03 06:03:37

它将是最高可用的优先级设置,并且通常仅在专用于运行该特定程序的计算机上使用。它实际上足够高,可能会导致键盘和鼠标线程饥饿到无法响应的程度。

因此,基本上,如果你必须问,不要使用它:)

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1663993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档