【发布时间】:2015-10-26 05:04:21
【问题描述】:
问题是不允许使用clock()函数,但我不知道如何处理线程中的time()函数。
【问题讨论】:
-
可能;你可以试试看stackoverflow.com/questions/275004/…
-
你为什么用
pthread而不是std::thread,因为你把帖子标记为C++11?
问题是不允许使用clock()函数,但我不知道如何处理线程中的time()函数。
【问题讨论】:
pthread而不是std::thread,因为你把帖子标记为C++11?
既然你标记了 C++11 的帖子,请看一下chrono 库:
#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();
【讨论】:
我认为您可以使用 gettimeofday() 函数来获取开始时间和结束时间。虽然此功能仅在 Linux 中有效。请参考[1]:http://linux.die.net/man/2/gettimeofday
windows中该功能请参考[2]:Equivalent of gettimeday() for Windows
【讨论】:
gettimeofday 应该在每个 POSIX 系统上都可用,而不仅仅是在 Linux 上
假设是Linux系统,读取time(7)然后使用clock_gettime(2),可能与CLOCK_REALTIME & CLOCK_THREAD_CPUTIME_ID;另见pthread_getcpuclockid(3) & getrusage(2)
顺便说一句,你的MAX_THREADS 太大了。您最多应该有十几个或两个线程....
【讨论】: