我一直在阅读 MSDN 上的线程优先级,并创建了一个有两个线程的测试程序。其中一个线程打印出一些文本然后休眠,而另一个线程运行一个无限循环,在该循环中它增加一些数字并且在不休眠的情况下这样做。我将后一个线程设置为比前一个线程具有更高的优先级,根据我正在阅读的内容,这应该意味着前一个线程没有获得任何 CPU 时间。
但它确实..
为什么是这样?
第一个线程是使用以下方法创建的:
HANDLE threadL = CreateThread(NULL, 0, threadLow, NULL, 0, &threadLiD);
另一个线程只是我放置此命令的主线程:
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_HIGHEST);