我正在写一个线程库,在调度线程时,我需要知道他们已经准备了多久。每个线程实例都有一个timeval _timeInReady
场,当我把一个实例来就绪队列我调用这个函数:当我想检查当前_timeInReady
值我称之为gettimeofday返回一个负值
void Thread::startTiming() {
gettimeofday(&_timeInReady, NULL);
}
:
double Thread::getTimeInReady() const {
return TIME(_timeInReady.tv_sec,_timeInReady.tv_usec);
}
在哪里TIME是#define TIME(a,b) ((a*1000000) + b)
这样我就可以得到总时间(以微秒为单位)。
我的问题是,由于某些原因,当我在一段时间后检查该字段时,我得到了疯狂的负值(例如-10293843)。
任何想法?谢谢!
您是否注意到,您认为自己有负数?如果是打印声明,请显示它。如果这是一个调试器检查,请告诉我们更多关于这一点的信息。 – 2012-04-24 15:56:57
这是一个调试器,日食 – yotamoo 2012-04-24 16:01:26