主线程结束,进程是否退出?


不退出:

 1 #include <windows.h>
 2 #include <process.h>
 3 
 4 
 5 unsigned  __stdcall _threadfun(void* pParam)
 6 {
 7     while(TRUE)
 8     {
 9         printf("hello world");
10     }
11 }
12 
13 int main(int argc, char* argv[])
14 {
15     unsigned uThreaID;
16     _beginthreadex(NULL,0,_threadfun,NULL,NULL,&uThreaID);
17     //不调用ExitThread,主线程执行完成退出,crt会终止所有的线程,进程退出
18     //如果调用了ExitThread退出主线程,crt不会终止其他的线程,虽然主线程退出了,进程仍然在
19     ExitThread(1);//显示调用ExitThread结束主线程,进程不退出 20 
21     return 0;
22 }

 

退出:

 1 #include <windows.h>
 2 #include <process.h>
 3 
 4 
 5 unsigned  __stdcall _threadfun(void* pParam)
 6 {
 7     while(TRUE)
 8     {
 9         printf("hello world");
10     }
11 }
12 
13 int main(int argc, char* argv[])
14 {
15     unsigned uThreaID;
16     _beginthreadex(NULL,0,_threadfun,NULL,NULL,&uThreaID);
17     //不调用ExitThread,主线程执行完成退出,crt会终止所有的线程,进程退出
18     //如果调用了ExitThread退出主线程,crt不会终止其他的线程,虽然主线程退出了,进程仍然在
19     //ExitThread(1);//不调用ExitThread,主线程执行完成退出,crt会终止所有的线程,进程退出
 20 21 return 0; 22 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM