转载:深入理解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退出后不会释放

 

posted @ 2013-08-15 00:28  kkindof  阅读(411)  评论(0)    收藏  举报