值得注意的是:
操作系统的SDK文档中说明,只要进程中有线程在运行,进程就不会退出。
而我们的程序经常是主线程结束了,(程序)进程也就结束了,而不管程序中是否还有别的线程在运行。
这不矛盾吗?
其实并不矛盾。
因为当主线程结束的时候,在程序员main函数外,C/C++运行期函数内(CStartCRTMain())释放必要的资源后,
主线程调用了操作系统的ExitProcess(nReturnCode),从而整个进程都结束,其它线程不管是否在运行,也就
结束了。
以上步骤也同时提醒我们,如果我们在main函数内调用了ExitProcess(),就会饶过C/C++运行期释放资源,当然这并
不会造成什么大的危害,因为进程结束了,它所占据的资源也就全部由系统释放了(当然也不赞成,也许你还有数据没来得及存储呢)。如果是在main函数内调用了
ExitThread()可就不妙了,因为在main函数内结束主线程,就会饶过C/C++运行期释放资源并结束进程,
从而导致进程不会结束,进而造成内存泄露。
------会出现析构得不到执行