pthread
来源:互联网 发布:软件测试资质 编辑:程序博客网 时间:2024/04/30 04:11
1. 计时
使用pthread编写的多线程程序,若是用clock_t结构体和clock()函数计时,多线程程序的运行时间会偏大,如
#include <time.h>clock_t begin, end;begin = clock();// pthread多线程代码end = clock();printf("%f秒\n", (double)(t1 - t0) / CLOCKS_PER_SEC);
这是因为clock()记录了所有CPU的时钟滴答数1, 求出的自然是所有Cores的使用时间之和。要计算实际并行计算的真实时间,应该使用lrt,如:
#include <time.h>struct timespec begin, end;double timediff;clock_gettime(CLOCK_MONOTONIC, &begin);// pthread多线程代码clock_gettime(CLOCK_MONOTONIC, &end);timediff = end.tv_sec - begin.tv_sec + (end.tv_nsec - begin.tv_nsec) / 1000000000.0;printf("排序时间为%f秒\n", timediff);
其中的timespec的结构如下
struct timespec { time_t tv_sec; // 秒 long int tv_nsec; // 纳秒 };
编译时需加入参数-lrt, 如:
[root@slave02 yy]# g++ test.cpp -lrt -o test -lpthread
0 0
- Pthread
- pthread
- pthread
- PThread
- pthread
- pthread
- pthread
- pthread
- pthread
- pthread
- pthread
- pthread
- pthread
- pthread
- Pthread
- pthread
- pthread
- Pthread
- 世界500强面试推理题求答案
- iOS开发笔记--UIView中的坐标转换
- iOS 8 AutoLayout与Size Class
- aaa
- Android-按钮效果
- pthread
- Python3:在0-1之间生成10个随机数
- Android沉浸式状态栏兼容4.4手机的实现
- leetcode——13——Roman to Integer
- Struts2 提交表单无法接收input disabled的值
- SEO策略之让别人主动链接你——链接诱饵
- 设计模式---代理模式
- zynq之petalinux安装和编译
- 关于Lucene以及索引和搜索的流程