Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何计算程序运行时线程的时间_C_C++11_Pthreads - Fatal编程技术网

C 如何计算程序运行时线程的时间

C 如何计算程序运行时线程的时间,c,c++11,pthreads,C,C++11,Pthreads,问题是不允许使用clock()函数,但我不知道如何处理线程中的time()函数。我认为可以使用gettimeofday()函数来获取开始时间和结束时间。而这个函数只在Linux中工作。请参阅[1]: 对于windows中的此功能,请参考[2]:假设使用Linux系统,请阅读然后使用,可能与时钟实时&时钟线程\u CPUTIME\u ID;另见, 顺便说一句,你的MAX_线程太大了。您最多应该有一打或两个线程……既然您标记了post C++11,请查看库: #包括 std::chrono::时间点

问题是不允许使用clock()函数,但我不知道如何处理线程中的time()函数。

我认为可以使用gettimeofday()函数来获取开始时间和结束时间。而这个函数只在Linux中工作。请参阅[1]:


对于windows中的此功能,请参考[2]:

假设使用Linux系统,请阅读然后使用,可能与
时钟实时
&
时钟线程\u CPUTIME\u ID
;另见,


顺便说一句,你的
MAX_线程
太大了。您最多应该有一打或两个线程……

既然您标记了post C++11,请查看库:

#包括
std::chrono::时间点开始、结束;
开始=标准::时钟::系统时钟::现在();

... // 概率;你可以试着看看为什么你使用
pthread
而不是
std::thread
,因为你把帖子标记为C++11?
gettimeofday
应该在每个POSIX系统上都可用,而不仅仅是在Linux上
#include <chrono>

std::chrono::time_point<std::chrono::system_clock> start, end;
start = std::chrono::system_clock::now();
... // <-- Code that you want to time
end = std::chrono::system_clock::now();
std::cout << "Time : " << std::chrono::duration<double>(end - start).count();