免费注册 查看新帖 |

Chinaunix

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

[Linux] 写了一个多线程计算矩阵的程序,打印出的程序执行时间为何是负数?各位大神乱入! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-06 16:05 |只看该作者 |倒序浏览
实在是想不通,一个线程的时候打印出的时间是对的,一旦多线程那么时间就会变为负的,而且绝对值也不对。各位大神帮忙想一下,问题出在哪?
另外还想问一下,linux下如何得到一个程序的执行时间?time命令还是在程序中用clock()?
贴一下我大体的代码:
int main(int argc ,char **argv){


        clock_t start,end;
        double duration;
        start =clock();
...中间略去一些无关紧要的代码...
...for(i=0;i<thread_num;i++){//创建线程
        int ret;
        s[i]=0;
        if(i==0){ret = pthread_create(&threads[i], NULL, (void *)C_thread1, NULL);}
        else {ret = pthread_create(&threads[i], NULL, C_thread2, (void*)i);}

        }
       
        for(i=0;i<thread_num;i++){
                pthread_join(threads[i], NULL);
        }
       
end=clock();
duration =(double) (end- start)/CLOCKS_PER_SEC;
printf("%lf\n",duration);       

}

论坛徽章:
0
2 [报告]
发表于 2012-12-06 16:37 |只看该作者
大神们在哪?

论坛徽章:
0
3 [报告]
发表于 2012-12-07 11:27 |只看该作者
计算时间用 time ./a.out 命令就够了。
clock()为什么会是负数 看manpage 有说明。

论坛徽章:
0
4 [报告]
发表于 2012-12-12 13:40 |只看该作者

论坛徽章:
0
5 [报告]
发表于 2012-12-12 15:56 |只看该作者
我的已经解决了。。。http://bbs.chinaunix.net/thread-4057635-1-1.html

论坛徽章:
0
6 [报告]
发表于 2012-12-12 15:57 |只看该作者
http://bbs.csdn.net/topics/390313565
core1011 发表于 2012-12-12 15:56
我的已经解决了。。。http://bbs.chinaunix.net/thread-4057635-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP