什么是"实时"流程优先级设置?

Chr*_*s S 65 windows taskmanager task task-management thread-priority

根据我过去的内容,我们鼓励您不要以编程方式更改Windows应用程序的优先级,如果这样做,则不应将其更改为"实时".

与"高"和"高于正常"相比,"实时"流程优先级设置有何作用?

Rei*_*man 77

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

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

对于Vista及更高版本,对于要求它们以实时优先级运行的应用程序的一个选项是使用多媒体类调度程序服务(MMCSS)并让它管理您的线程优先级.MMCSS将阻止您的应用程序使用太多的CPU时间,因此您不必担心机器的晃动.

  • @mrfred我不会说它很危险,只是如果它是一个大型程序它会减慢整个系统的速度.尝试将Minecraft的优先级设置为Realtime.相信我,这很有趣.您的鼠标速度变慢,按键需要5秒钟才能响应,并且explorer.exe变得无法响应! (18认同)
  • 系统将单个随机过程(如视频游戏)置于实时优先级是否有危险?是否会建议高优先级/该应用程序会有明显的性能下降吗? (4认同)
  • 实时优先级*线程*和实时基本优先级类别之间存在差异。后者适用于整个进程,无需额外设置各个线程优先级,不会导致任何线程实时。 (4认同)
  • @mrfred我个人已经在高速和实时优先级上运行了十几个月,并且它使游戏运行得更加顺畅,只有偶尔的音频假象(无论出于何种原因).我从来没有遇到任何问题...我认为如果出现严重错误的话,系统至少会过热,但当然,我真的不知道可能出现什么问题.也许有多个核心可以对IO设备的任何资源缺乏进行反击等. (3认同)

Mic*_*urr 25

简单地说,"实时"优先级高于"高"优先级.我认为除此之外还有更多.哦是的 - 你必须SeIncreaseBasePriorityPrivilege把一个线程放到Real Time类中.

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

Russinovich关于Windows如何处理优先级的"Inside Windows"章节是了解其工作原理的重要资源:

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

  • 是的,如果您的线程没有太多要做但*需要*以获得良好的响应时间,那么实时线程是合适的. (8认同)

Eri*_*lje 16

它将是可用的最高优先级设置,通常仅用于专用于运行该特定程序的框.它实际上足够高,它可能导致键盘和鼠标线程的饥饿到他们变得没有响应的程度.

所以基本上,如果你不得不问,不要使用它:)

  • 如果你不问如何使用它,你将如何学会使用它?我想你可以使用它,看看会发生什么然后你会学习,但我觉得你的沮丧学习 (4认同)