创建子线程,主线程一定要存在吗?----急!!!

wuzf 2005-03-22 11:02:33
void *session(void *connfd)
{
return NULL;
}


void main()
{
pthread_t tid;
int res = pthread_create(&tid, NULL, &session, (void *)t);
while(1);
}
为何一定要while(1)?若不用这句,则子线程跑进去后就退出了,为什么?有没什么好方法解决?

...全文
217 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoxianfeng 2005-03-31
  • 打赏
  • 举报
回复
一般 不让主进程退出 否则子进程的一些状态等就没人 收集 处理了
gaoxianfeng 2005-03-24
  • 打赏
  • 举报
回复
什么都先不提
至少while(1);不是好习惯

至少要while(1)

sleep(num);
core 2005-03-24
  • 打赏
  • 举报
回复
主线程做完自己的事,要么pthread_join等待子线程退出
要么pthread_exit退出自己,这样不至于子线程也退出
sharkhuang 2005-03-23
  • 打赏
  • 举报
回复
pthread_join
LDD123 2005-03-23
  • 打赏
  • 举报
回复
如果主线程也是一个不退出的循环,那最好了,主次线程一起跑。如果主线程不做什么事,
那就在main()函数的最后加上while(1) 在while里sleep一下啰.
xiangzw 2005-03-23
  • 打赏
  • 举报
回复
使用pthread_join
看一下man,可以知道主线程使用这个函数就是等待某个线程结束自己再往下执行。
xfzhao_cn 2005-03-23
  • 打赏
  • 举报
回复
pthread_join 比 while(1) 好, 不用这么耗费cpu 时钟了。
qfxx 2005-03-23
  • 打赏
  • 举报
回复
把后面的东西放到while(1)循环里面
如果你只想让while中程序只操作一次
可以加上一个if语句来条件执行
tengulre 2005-03-23
  • 打赏
  • 举报
回复
主要是为了控制子线程!
wuzf 2005-03-23
  • 打赏
  • 举报
回复
你把while(1)夹在后面就不能往下执行了呀,那它后面的东西就跑不起来了,请问有什么办法解决呢?
uranus2005 2005-03-23
  • 打赏
  • 举报
回复
主线程退出之后子线程就退出了
你把while(1)夹在后面不就行了
wuzf 2005-03-23
  • 打赏
  • 举报
回复
请教:主要是在while(1)后面还有需执行的东西,那这里while(1)了就下不去了,怎办?

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧