1
价值
1
回答
1593
浏览
Linux 下多线程调用 gettimeofday 函数,偶尔得到的结果偏差很大
Linux 下面跑一个程序,大概 30 多个线程,用 gettimeofday 函数记录起始时间、结束时间从而计算出任务的完成时间。但是,多线程下的 gettimeofday 表现不稳定,偶尔会返回比较离谱的结果,数值偏差特别大。出错的概率,低于 1%。但是这个出错的概率也很要命,导致实验数据出错,完全没法用。
怀疑这个函数不是线程安全的,于是加上了互斥锁,但仍然会偶尔返回错误数据。
不是程序的问题,我已经简化了程序,单纯创建多线程并调用 gettimeofday,去掉了其他代码,仍然会偶尔返回错误数据。
有没有相关的解决方案?