转载:深入理解CRITICAL_SECTION
转自http://www.cnblogs.com/dirichlet/archive/2011/03/16/1986251.html
貌似只是个翻译,后面有英文http://www.msdn.microsoft.com/msdnmag/issues/03/12/CriticalSections/default.aspx
Displaying a Critical Section
http://msdn.microsoft.com/en-us/library/windows/hardware/ff541979(v=vs.85).aspx
临界区和MUTEX都可重入,但临界区owner退出后不会释放,而后者会自动释放
CRITICAL_SECTION cs;
DWORD __stdcall Threadtest(PVOID pp)
{
printf("geting lock thread\n");
EnterCriticalSection(&cs);
EnterCriticalSection(&cs);可重入
printf("get lock thread\n");
/*Sleep(2000);*/
MessageBoxA(NULL, "hh", NULL, NULL);
、、没释放
printf("leave lock thread\n");
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
InitializeCriticalSection(&cs);
CreateThread(NULL, 0, Threadtest, NULL, NULL, NULL);
Sleep(100);
printf("geting lock _tmain\n");
EnterCriticalSection(&cs);
临界区可重入,owner退出后不会释放

浙公网安备 33010602011771号