根据我在过去读到的内容,我们鼓励您不要通过编程方式更改Windows应用程序的优先级,如果您这样做了,您永远不应该将它们更改为“实时”。
与“高”和“高于正常”相比,“实时”进程优先级设置的作用是什么?
发布于 2009-11-03 11:07:36
实时优先级线程永远不会被定时器中断抢占,并且以比系统中任何其他线程更高的优先级运行。因此,CPU限制的实时优先级线程可能会完全毁掉一台机器。
创建实时优先级线程需要权限(SeIncreaseBasePriorityPrivilege,因此只能由管理用户完成。
对于Vista及更高版本,对于需要以实时优先级运行的应用程序来说,一种选择是使用Multimedia Class Scheduler Service (MMCSS)并让它管理您的线程优先级。MMCSS将防止您的应用程序使用过多的CPU时间,因此您不必担心机器会损坏。
发布于 2009-11-03 06:01:21
简单地说,“实时”优先级级别高于“高”优先级级别。我认为没有比这更多的东西了。哦,是的,你必须有SeIncreaseBasePriorityPrivilege
才能把一个线程放到实时类中。
Windows有时会出于各种原因提高线程的优先级,但它不会将线程的优先级提升到另一个优先级级别。它也不会提高实时优先级类中线程的优先级。因此,高优先级线程不会自动临时提升到实时优先级类中。
Russinovich关于Windows如何处理优先级的"Inside Windows“一章是一个很好的资源,可以用来了解它是如何工作的:
请注意,在正常的Windows系统上,拥有实时优先级的线程绝对没有问题--它们不一定适用于在专用机器上运行的特殊进程。我认为多媒体驱动程序和/或进程可能需要具有实时优先级的线程。然而,这样的线程不应该需要太多的CPU -它应该在大多数时间内阻塞,以便正常的系统事件得到处理。
发布于 2009-11-03 06:03:37
它将是最高可用的优先级设置,并且通常仅在专用于运行该特定程序的计算机上使用。它实际上足够高,可能会导致键盘和鼠标线程饥饿到无法响应的程度。
因此,基本上,如果你必须问,不要使用它:)
https://stackoverflow.com/questions/1663993
复制相似问题