免费注册 查看新帖 |

Chinaunix

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

[C] aix5.3下pthread_cancel不掉线程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-07 10:26 |只看该作者 |倒序浏览
我是主线程cancel分线程,分线程是detached方式创建且分线程设成了接到cancel信号马上退出,可有时候就是cancel不掉分线程!!
代码太长不方便贴上来!!
哪位大虾指导一下怎么才能保证让分线程退出!

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
2 [报告]
发表于 2008-10-07 10:59 |只看该作者
分线程不能用detached方式

论坛徽章:
0
3 [报告]
发表于 2008-10-07 11:06 |只看该作者

回复 #2 chenzhanyiczy 的帖子

应该叫子线程吧,
pthread_attr_t pAttr;
pthread_attr_init(&pAttr);
pthread_attr_setdetachstate(&pAttr,PTHREAD_CREATE_DETACHED);

pthread_create(&pid, &pAttr, (void *)func,NULL);

我说的是这个意思!!

[ 本帖最后由 hua_xg 于 2008-10-7 11:09 编辑 ]

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
4 [报告]
发表于 2008-10-07 14:51 |只看该作者
就是说创建子线程时用PTHREAD_CREATE_JOINABLE,而不是PTHREAD_CREATE_DETACHED

论坛徽章:
0
5 [报告]
发表于 2008-10-07 15:07 |只看该作者
我创建子线程的时候用的是:PTHREAD_CREATE_DETACHED
你那意思是不是用pthread_cancel子线程,子线程创建的时候不能用PTHREAD_CREATE_DETACHED这种方式啊?,这个我倒是不了解!!

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
6 [报告]
发表于 2008-10-07 15:16 |只看该作者
对头。

论坛徽章:
0
7 [报告]
发表于 2008-10-07 15:23 |只看该作者
啊,还有这么回事啊,不能吧!!
但是有时候是可以cancel掉的,有时候就不可以!!
晕了!!

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
8 [报告]
发表于 2008-10-07 16:15 |只看该作者
pthread_cancel 和 pthread_join配合使用的

论坛徽章:
0
9 [报告]
发表于 2008-10-07 16:25 |只看该作者
非常感谢,刚才搜了些资料,有人说pthread_cancel是不安全的,最好别用,看来需要另寻他路了

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
10 [报告]
发表于 2008-10-07 16:32 |只看该作者
原帖由 hua_xg 于 2008-10-7 16:25 发表
非常感谢,刚才搜了些资料,有人说pthread_cancel是不安全的,最好别用,看来需要另寻他路了



pthread_cancel不会不安全,但信号机制是不安全

用pthread_cancel时应注意的是取消点和资源回收
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP