当ReleaseMutex时,另外一个线程由于使用WaitForSingleObject优先级会立刻提升,从而获得执行权

解决方案 »

  1.   

    当ReleaseMutex时,另外一个线程由于使用WaitForSingleObject优先级会立刻提升,从而获得执行权
      

  2.   

    我记得《Win32多线程编程》中提到,不要指望线程能以程序员希望的时间启动,不要指望线程能按启动的顺序执行,还有线程对同一互斥量存在着资源竞争的问题。
    当一个线程使用ReleaseMutex之后,这个线程还会再次运行到WaitForSingleObject,而另一个线程即使正位于WaitForSingleObject等待中,也未必立刻能得到信号而执行。所以说,当一个线程使用ReleaseMutex之后,究竟哪个线程能继续运行,还很难说。
      

  3.   

    不要在这里瞎说,windows的调度是以优先级为参考的,ReleaseMutex之后优先级会降低,另一个WaitForSingleObject的线程优先级会升高,所以ReleaseMutex之后优先级比WaitForSingleObject低
      

  4.   

    (最后三个字符却连续是aaa有时候是bbb) 
    当你关掉一个线程后,另一个线程还在执行,所以会有连续的输出.