很久以前,接触一个项目,看到一个while(1)死循环,但又发现程序经常跳出while去执行另外一段程序,甚为疑虑。其实,在多线程模式下,这是可能的,下面的程序就不会一直陷入main的while(1)循环:
#include <stdio.h>
#include <windows.h>
DWORD WINAPI ThreadFun(LPVOID pM)
{
while(1)
{
printf("thread\n");
exit(0);
}
return 0;
}
int main()
{
HANDLE handle = CreateThread(NULL, 0, ThreadFun, NULL, 0, NULL);
CloseHandle(handle);
while(1)
{
printf("main thread\n");
}
return 0;
}