社区
C语言
帖子详情
怎样做到主线程结束后子线程继续工作呢
power0811
2006-12-28 04:59:59
如题.请写出一个小例子.多谢指教~~~~~
...全文
1356
34
打赏
收藏
怎样做到主线程结束后子线程继续工作呢
如题.请写出一个小例子.多谢指教~~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
34 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yzx1983
2006-12-29
打赏
举报
回复
楼上想说明什么?^_^
sl19820216
2006-12-29
打赏
举报
回复
这个方法主进程没有退出 主的是进程
int main(void)
{
pthread_t mythread;
int i;
if(pthread_create(&mythread,NULL,thread_function,NULL))
{
printf("err creating thread");
}
printf("\n主线程退出 - 1\n");
pthread_exit(NULL);
printf("\n主线程退出 - 2\n");
return 0;
}
/export/home3/ismg/shaol/test/src>:a.out
主线程退出 - 1
子线程&0
子线程&1
子线程&2
子线程&3
子线程&4
yzx1983
2006-12-29
打赏
举报
回复
楼主你把我弄糊涂了哎~~
主线程pthread_exit之后就没了,子线程还在啊,有虾米问题?
power0811
2006-12-29
打赏
举报
回复
哦....算了.呵呵.估计没有办法了....那就这样吧.谢谢大家:)
jcqstc
2006-12-29
打赏
举报
回复
楼主的子线程是主线程创建出来的吗?
如果是的话,没有办法.
yzx1983
2006-12-29
打赏
举报
回复
没看明白,现在啥情况?跟你初衷有矛盾么?
power0811
2006-12-29
打赏
举报
回复
可是这个并不符合我的初衷.我希望的是主线程输出主线程退出.然后结束.子线程自己运行它自己的.
有什么更好的办法么?请指教一下.:)
sl19820216
2006-12-29
打赏
举报
回复
主的应该是进程吧? 能够用线程的退出方法退出么?
yzx1983
2006-12-29
打赏
举报
回复
你把这个东西当成线程专用的exit来理解就行了。
yzx1983
2006-12-29
打赏
举报
回复
那当然了,你在printf之前用了pthread_exit,线程都退出了,哪还能printf 啊?
power0811
2006-12-29
打赏
举报
回复
......
呵呵...
好像也不太对.我把pthread_exit写到printf("\n主线程退出\n"); 是先输出:主线程退出,然后20边子线程退出.但是如果写到printf("\n主线程退出\n"); 前面的话.就看不到printf("\n主线程退出\n"); 输出了.
yzx1983
2006-12-29
打赏
举报
回复
……
是让你主线程用pthread_exit来退出。
power0811
2006-12-29
打赏
举报
回复
我刚刚试了一下.还是不行哦..
是这么写么?
void *thread_function(void *arg)
{
int i=0;
for(i=0;i<20;i++)
{
printf("子线程&");
sleep(1);
}
pthread_exit(NULL);
}
int main(void)
{
pthread_t mythread;
int i;
if(pthread_create(&mythread,NULL,thread_function,NULL))
{
printf("err creating thread");
abort();
}
printf("\n主线程退出\n");
//exit(0);
return 0;
}
yzx1983
2006-12-29
打赏
举报
回复
不是说了pthread_exit来退出么
power0811
2006-12-29
打赏
举报
回复
真的没有办法让主线程退出后子线程继续存活的可能性么??
yzx1983
2006-12-29
打赏
举报
回复
一会儿被插了n楼嘛……
yzx1983
2006-12-29
打赏
举报
回复
sorry弄错了。
任意线程使用
pthread_exit退出,都可以在不终止整个进程的情况下停止自己的“控制流”(control flow?)
包括主线程。
主线程exit会导致整个进程终止想必不用解释,而它return后也将返回到main被调用的地方,随后必然会调用exit,所以我之前说的方法不行。
匪徒说的detach方法,我没有查到相关资料说有此用途,试验了一下,也失败了。APUE上说的是detach的线程不可被join,其退出后的资源交给系统来回收。
power0811
2006-12-29
打赏
举报
回复
好是不行哦.....
真的没有办法让主线程退出后子线程继续存活的可能性么??
zhousqy
2006-12-29
打赏
举报
回复
用fork算了
zhousqy
2006-12-29
打赏
举报
回复
应该把名字改成pthread_unjoinable
加载更多回复(14)
Java简单实现“
主
线程
等待所有子
线程
完成再
继续
”
NULL 博文链接:https://zhaoningbo.iteye.com/blog/1158225
Python
线程
同步的实现代码
子
线程
在
主
线程
运行
结束
后,会
继续
执行完,如果给子
线程
设置为守护
线程
(setDaemon=True),
主
线程
运行
结束
子
线程
即
结束
; 如果join()
线程
,那么
主
线程
会等待子
线程
执行完再执行。 import threading import time def...
主
线程
和子
线程
的关系(讨论
主
线程
结束
,子
线程
是否要回收)
主
线程
里面的main函数没有执行完了,
主
线程
结束
了,操作系统的不会执行相应的资源回收函数,去将进程的资源回收,要等待最后一个
线程
结束
了,进程资源才会回收。没有 pthread_exit函数,
主
线程
里面的main函数执行...
linux中
主
线程
退出
后子
线程
的状态
利用ps -ef查看进程状态,发现没有
主
线程
和子
线程
都不在,即是
主
线程
退出
后子
线程
也会退出。 2.运行如下代码,增加利用pthread_exit函数,使
主
线程
退出。 利用ps -ef查看进程状态,发现存在进程,利用(ps -Lf 进程...
Java多
线程
之----
主
线程
会等待子
线程
结束
再
结束
么,怎么让
主
线程
等待子
线程
结束
呐?
首先给出结论:
主
线程
和子
线程
之间没有谁先谁后
结束
...可以看到执行结果,
主
线程
结束
后,子
线程
稍等了一会才
结束
执行,并没有
主
线程
需要等待子
线程
结束
的情况。
主
线程
的任务: 1.thread.start 开启子
线程
2.System.o
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章