不管优先级如何,线程总会有运行的机会,叫做抢占调度,而优先级高的线程如果程序员有好习惯一般都会在适当的代码,如循环里,调用SwitchThread来放弃执行。即便你线程优先级是33等最高,也仅仅是在空闲的时候系统尽可能的调度你在的线程,其实我想说你并不是优先级越高越好,比如13和33,在低配cpu上33会执行得更慢,因为系统疯狂的调度你,上下文切换暴多,这样一个线程足以搞臭整个系统。一般要求高的线程用高优先级(11)就行了,迫不得已才用实时(13),而vista开始加入的媒体线程超高优先级函数AvRt****如果你不是写游戏千万不要用,视频音频也不要用,这个可以提升优先级到33,而你视频音频需要IO会话,IO操作速度慢完全没意义,线程也有IO会话优先级,而系统没有公开API调整IO优先级(NtSetThreadInformation可以改),所以超高线程优先级除了游戏Render线程外都是没啥用的。
反正你设多高,最低的那个线程也会得到执行,你高优先级仅仅是抢占cpu执行时间更多而已,而低优先级就少了。
反正你设多高,最低的那个线程也会得到执行,你高优先级仅仅是抢占cpu执行时间更多而已,而低优先级就少了。