免费注册 查看新帖 |

Chinaunix

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

[Linux] 多线程创建的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-12 10:49 |只看该作者 |倒序浏览
pthread_t *p  p = (pthread_t *)malloc(num*sizeof(pthread_t))
然后for循环创建线程,在创建线程的过程中如果num不是特别大的话,是没有什么问题的,我这里设置成

500没有问题,大于500后就会出现段错误,我调试了core dump文件,内容如下:
warning: Corrupted shared library list: 0x7f329f0aa9f8 != 0x7f31bceb0700
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./a.out -c 500 http://www.baidu.com/index.php'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __tsearch (key=key@entry=0x7f3205f416f8, vrootp=vrootp@entry=0x7f3211f5a728,
    compar=compar@entry=0x7f329e9c04a0 <known_compare>) at tsearch.c:251
251        tsearch.c: No such file or directory.

但是如果我要是在for循环创建线程的时候sleep(1)秒后就没有啥问题了,但是每次sleep(1)秒这样创建

线程太慢,另外一种情况就是如果改成pthread_t p[num]数组的形式然后for循环创建多线程就没有任何
问题了。 不知道有谁遇见过这样的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP