程序简单来说类似一个多线程下载器,开了1024个线程,然后并发去服务器读取一个大文件的某一块,读取完成后,文件合并要按照顺序写文件,所以我采用了pthread_join依次等待上一个线程写完成操作。测试时候发现程序偶尔会突然down掉,也不出core,并不是总down,也会有成功执行时候。机器配制足够高了,内存96G,24核cpu。。。希望大家帮忙分析下。。谢谢,代码逻辑如下。
void* thread_fun()
{
......
if(id != 0)pthread_join(thread_list[id - 1],NULL);//等待上一个线程结束
write(fd,th_d->file,file - th_d->file);//写文件
想了一下,想不出原因,你加GDB调试一下喽,看看在哪core dump
掉的,不出core 你是不是没有设置啊,
linux 默认的core 文件是不打开的,你需要设置一下他的大小,或者是不限制大小。#ulimit -c unlimite
设置core 文件大小为不限定状态就可以打开了,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。