书P205:volatile bool g_fFinishedCalculation = false;int WINAPI _tWinMain(...)
{
    CreateThread(... , RecalcFunc , ...);
    //...
    while (!g_fFinishedCalculation)
         ;   // ....
}DWORD RecalcFunc(PVOID pvParam)
{
    g_fFinishedCalculation = true;return 0;
}对于这段代码,书上说,如果_tWinMain优先级比RecalcFunc的高,那么g_fFinishedCalculation = true;可能永远不会执行请问,这个“可能”是否指的是当_tWinMain的优先级大于15的时候才会发生?因为书前面说(P186)的是,当一个线程因为自己的优先级比其他线程的高而饥饿了几秒时,系统会将它的优先级动态提升至15,以获得运行的机会

解决方案 »

  1.   

    请问,这个“可能”是否指的是当_tWinMain的优先级大于15的时候才会发生?
    ========
    应该不是
      

  2.   

    _tWinMain要大于15吧.否则RecalcFunc会慢慢升到15
      

  3.   

    果_tWinMain优先级比RecalcFunc的高 意思是只要 _tWinMain 比 RecalcFunc 高就行,  不管RecalcFunc 怎么提升 只要一直满足 前者比后者高就行
    当 RecalcFunc  提升到15的时候, 那_tWinMain 应该要大于15