社区
进程/线程/DLL
帖子详情
一旦进程的主线程结束这个进程就结束了吗?
unitten
2013-05-06 06:50:00
看到什么前台线程和后台线程的东西,说是如果这个进程下的线程都是前台线程的话,程序就要所有已启动的线程都运行完毕才会结束。
...全文
910
6
打赏
收藏
一旦进程的主线程结束这个进程就结束了吗?
看到什么前台线程和后台线程的东西,说是如果这个进程下的线程都是前台线程的话,程序就要所有已启动的线程都运行完毕才会结束。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
要追问请引用回复
2013-05-10
打赏
举报
回复
http://blog.csdn.net/my3439955/article/details/8909641
liangbina07
2013-05-06
打赏
举报
回复
主线程 就像树的根节点一样,当根都不在了,毛将附焉。至于资源释放问题,unix和windows下不同。
hust_wangyajun
2013-05-06
打赏
举报
回复
主线程创建了辅助线程, 就要有两种行为 1 亲自结束辅助线程的生命(CloseHandle),2 等待辅助线程自己结束。否则如果主线程意外终止,会导致辅助线程的资源泄露。为了防止这种情况,也可以在辅助线程中采用GetExitCodeThread时时检测主线程(或者这样说不确切,也可以是创建者线程)是否还健在,从而自行结束生命。代码: DWORD WINAPI ThreadProc2(LPVOID lpParam) { //辅助线程 HANDLE hParent=(HANDLE)lpParam; DWORD nCode; do { if (!GetExitCodeThread (hParent,&nCode)) { printf ("get exit code failed!\n"); printf ("error:%d\n",GetLastError ()); } if (nCode!=STILL_ACTIVE)//父线程结束 { cout<<"Thread2 find his father had exit,so it exit itself"<<endl; return 1; } } while (TRUE); } DWORD WINAPI ThreadProc1(LPVOID lpParam) { //创建者线程,给辅助线程传递自己的句柄,该句柄必须通过DuplicateHandle得到 HANDLE hParent=INVALID_HANDLE_VALUE; if (!DuplicateHandle (GetCurrentProcess (),GetCurrentThread (),GetCurrentProcess (),&hParent,NULL,TRUE,DUPLICATE_SAME_ACCESS)) printf ("get parent handle failed!\n"); HANDLE hThread = CreateThread (NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc2,(LPVOID)hParent,0,NULL); if(hThread == 0) { DWORD error = GetLastError(); cout<<"Create thread2 failed,error number:"<<error<<endl; system("pause"); return -1 ; } Sleep(4000); CloseHandle(hThread); return 0; }
tiankong_bear
2013-05-06
打赏
举报
回复
主线程退出,进程退出。 “前台线程”的那个说法没什么道理
我居然喜欢写代码
2013-05-06
打赏
举报
回复
理论上主线程结束进程就退出了,自动释放为这个进程分配的所有资源。 但是我们写程序一般都会自己结束其它线程释放资源,不然可能会出现未知的错误。
ljz888666555
2013-05-06
打赏
举报
回复
主进程结束,程序就退出了。
003.多
线程
-
主
线程
、守护
线程
、用户
线程
的区别
对于
线程
的分类,我们可以简单划分为:
主
线程
(每个
进程
只有一个
主
线程
) 子
线程
主
线程
: main方法 子
线程
:非
主
线程
皆是子
线程
子
线程
中可以简单划分为: 守护
线程
非守护
线程
,即用户
线程
守护
线程
:
主
要是指 在
进程
中,为
主
线程
提供一种通用服务的
线程
。 比如 gc
线程
因为,
主
线程
一旦
结束
或者销毁, 守护
线程
没有了守护对象, 也将同步进行
结束
或销毁。 非守护
线程
/用户
线程
:...
python
主
线程
主
动杀死子
线程
_Python
主
线程
和子
线程
Python
主
线程
和子
线程
一、setDaemon(False)当一个
进程
启动之后,会默认产生一个
主
线程
,因为
线程
是程序执行的最小单位,当设置多
线程
时,
主
线程
会创建多个子
线程
,在Python中,默认情况下就是setDaemon(False),
主
线程
执行完自己的任务以后,就退出了,此时子
线程
会继续执行自己的任务,直到自己的任务
结束
;案例import threadingimport timedef th...
线程
启动、
结束
、创建
线程
多个方法,join和detach
一.
线程
运行的开始和
结束
主
线程
从main()函数开始执行,因此我们自己创建的
线程
,也需要从一个函数函数开始运行(初始函数),一旦这个函数执行完毕,就代表我们的
线程
运行
结束
。 整个
进程
是否执行完毕的标记:
主
线程
是否执行完毕。 一般情况下,如果
主
线程
运行完毕,而子
线程
还没运行完成,则这些子
线程
就会被操作系统强行终止,因此如果想保持子
线程
的运行状态的话,就要让
主
线程
一直保持运行。—>这个有例外,...
python实现
主
进(线)程退出时,所有子进(线)程也全部退出
python多
进程
或多
线程
中,如果我们想实现当
主
进程
或
主
线程
退出,则所有的子
进程
或子
线程
也全部退出时,可以使用daemon参数。daemon参数为True时,表示设定该
线程
或
进程
为守护
线程
或守护
进程
。守护
线程
或
进程
的意义就在于,其生命依赖
主
进程
或
主
线程
,只有当
主
进程
或
主
线程
活动时,其才会活动,一旦
主
进程
或
主
线程
退出了,则其也会自动退出。 这种情况特别会在当我们强制退出...
python
主
线程
_Python
主
线程
和子
线程
Python
主
线程
和子
线程
一、setDaemon(False)当一个
进程
启动之后,会默认产生一个
主
线程
,因为
线程
是程序执行的最小单位,当设置多
线程
时,
主
线程
会创建多个子
线程
,在Python中,默认情况下就是setDaemon(False),
主
线程
执行完自己的任务以后,就退出了,此时子
线程
会继续执行自己的任务,直到自己的任务
结束
;案例import threadingimport timedef th...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章