免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1563 | 回复: 7
打印 上一主题 下一主题

[Linux] 关于多线程编程的一个问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-30 12:45 |只看该作者 |倒序浏览
我们知道分离线程的方式有两种,第一种是在调用pthread_create函数时设置新线程的属性;第二种就是调用pthread_detach函数。
我的问题来自第二种方式。
看下面的伪代码:
.....
pthread_create(&tid, NULL, newpthread, NULL);
pthread_detach(tid);
.....

如果在pthread_create返回前,newpthread已经结束了,那pthread_detach(tid)会出错么?
请告知测试方法或代码。谢谢哈。

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
2 [报告]
发表于 2013-05-30 13:00 |只看该作者
  1. RETURN VALUE
  2.        On success, pthread_detach() returns 0; on error, it returns an error number.

  3. ERRORS
  4. ESRCH  No thread with the ID thread could be found.
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-05-30 13:03 |只看该作者
井蛙夏虫 发表于 2013-05-30 13:00


你的意思是会出错?

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
4 [报告]
发表于 2013-05-30 13:05 |只看该作者
它只有两种错误值:
  1. EINVAL thread is not a joinable thread.

  2.        ESRCH  No thread with the ID thread could be found.
复制代码
你可以忽略错误,没什么太大的影响。

论坛徽章:
0
5 [报告]
发表于 2013-05-30 13:14 |只看该作者
井蛙夏虫 发表于 2013-05-30 13:05
它只有两种错误值:你可以忽略错误,没什么太大的影响。


那新线程处于什么状态呢?是僵尸状态还是它的资源已被彻底释放?

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
6 [报告]
发表于 2013-05-30 13:50 |只看该作者
回复 5# lll__2001
我说错了。
刚测试了下,线程结束后还没有join时,pthread_detach不返回错误。

   

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
7 [报告]
发表于 2013-05-30 14:00 |只看该作者
pthread_detach(tid)通常是线程函数头部做的, 不要在create后面做.

论坛徽章:
7
2015年亚洲杯之约旦
日期:2015-03-05 17:03:522015亚冠之山东鲁能
日期:2015-09-29 13:01:2115-16赛季CBA联赛之四川
日期:2016-01-18 15:47:0215-16赛季CBA联赛之广夏
日期:2016-02-24 11:47:1515-16赛季CBA联赛之辽宁
日期:2016-11-01 09:45:4115-16赛季CBA联赛之青岛
日期:2017-02-15 10:02:182016科比退役纪念章
日期:2017-02-16 17:25:35
8 [报告]
发表于 2013-05-30 15:20 |只看该作者
回复 7# linux_c_py_php
你是说子线程自己将自己分离出去,这倒是个非常好的办法。。。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP