免费注册 查看新帖 |

Chinaunix

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

判断线程是否存在 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-15 15:45 |显示全部楼层 |倒序浏览
int main()
    329 {
    330         pthread_t th_sock;
    331         int val;
    332
    33
    335
    336         val = pthread_kill(th_sock,0);
    337         if(val != 0)
    338         {
    339                 if(val == ESRCH)
    340                 {
    341                    printf("thread is NULL\n");
    342                   if( pthread_create(&th_sock,NULL,,NULL) != 0)
    343                   {
    344                           exit(1);
    345                   }
    346                 }
    347         }
    348         return 0;
    349 }
我的目的是在线程没有创建之前,先判断其是否存在,如果不存在就创建th_sock,去执行thread_sock,然后再thread_sock中在创建一个监听线程,如果我不用线程去调用thread_sock函数,直接引用就没有问题,可是要创建线程时就不能正确执行。望高人指正错误。

论坛徽章:
0
2 [报告]
发表于 2007-01-15 16:16 |显示全部楼层
我刚才试了一下pthread_kill返回值为0,可是我根本没有启动线程阿,为此我又重新重起了机器,也是返回值为0表示线程存在阿,晕

论坛徽章:
0
3 [报告]
发表于 2007-01-15 16:36 |显示全部楼层
自己顶一下

论坛徽章:
0
4 [报告]
发表于 2007-01-16 09:12 |显示全部楼层
我昨天换了一台机器,我的这个函数能够正确执行,可是我在本机是不能正确执行的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP