如下是我的程序,我期望程序输出 执行 printf("Thread 2\n");,但是程序一直执行不到该句,为什么?
#include <Windows.h>
DWORD WINAPI Thread1(LPVOID);
DWORD WINAPI Thread2(LPVOID);
CRITICAL_SECTION criticalsection;
DWORD WINAPI Thread1(void* parm)
{
if(TryEnterCriticalSection(&criticalsection))
{
printf("Thread 1 ok\n");
}
else
{
printf("Therad 1 error\n");
}
EnterCriticalSection(&criticalsection);
Sleep(1000*1);
printf("Thread 1\n");
LeaveCriticalSection(&criticalsection);
return 0;
}
DWORD WINAPI Thread2(void* parm)
{
if(TryEnterCriticalSection(&criticalsection))
{
printf("Thread 2 ok\n");
}
else
{
printf("Therad 2 error\n");
}
EnterCriticalSection(&criticalsection);
Sleep(1000*1);
printf("Thread 2\n");
LeaveCriticalSection(&criticalsection);
return 0;
}
int main()
{
HANDLE handl;
DWORD id;
InitializeCriticalSection(&criticalsection);
handl = CreateThread(NULL, NULL, Thread1, NULL, 0, &id);
//Sleep(1000*2);
handl = CreateThread(NULL, NULL, Thread2, NULL, 0, &id);
//main function wait
while (1)
{
}
return 0;
}