很久以前,接触一个项目,看到一个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;
}


 


本文转载:CSDN博客