大家都知道Critical Section(临界区域)是用来同步线程见通讯的。我在multithreading applications in Win32书中(102页)看到这么一段话:
在Windos NT中,如果一个线程要进入Critical Section(即调用了函数EnterCriticalSection)而在未离开的情况下就结束(即没有调用LeaveCriticalSection),该Critical Section会被永远锁住(指导进程结束)。然而在Windows 95中,如果发生同样的事情,其他等着要进入该Critical Section的线程,将获准进入。
我很想知道,这到底是不是真的?所以我上传了简单的关于线程通讯的源码,在ThreadOne函数中把LeaveCriticalSection封掉),想证实下。我的系统是XP的,运行结果如下:
XP:
望不同的系统者也试下,把结果贴上来看看。研究下。o(∩_∩)o...