被 gettimeofday害死,又一个线程不安全函数,有没有线程安全代替品?
时间:2010-04-14
来源:互联网
小小吐槽一下~
作者: ydfgic 发布时间: 2010-04-14
作者: hellioncu 发布时间: 2010-04-14
作者: 专操五毛 发布时间: 2010-04-14
http://publib.boulder.ibm.com/in ... ic=/apis/gettod.htm
作者: rain_fish 发布时间: 2010-04-14
透漏下嘛~
第一次听说这个不是线程安全的。。
作者: seer671 发布时间: 2010-04-14
作者: pagx 发布时间: 2010-04-14
我开了50个线程在 centos上循环跑,偶尔会出现得到的tv_sec 大4500多秒。
于是我使用 time(0)来代替,也会出现这样的情况
struct timeval now;
int ret = gettimeofday(&now, NULL);
time_t s = ::time(0);
assert(ret == 0);
assert (now.tv_sec <= s );
assert 失败,结果会大 4500s。
google 关键词“gettimeofday线程安全”,有一篇
《mktime,localtime_r,gettimeofday是线程安全的吗?》
http://hi.baidu.com/pkuyikai/blo ... bfd23e0cd7da86.html
google “gettimeofday thread-safe”,这篇比较靠前,也有人引用
http://osdir.com/ml/lib.common-c++.bugs/2004-05/msg00007.html
“The problem, according to POSIX documentation, is that time(), and
> therefore gettimeofday(), keeps some static data that is overwritten by
> each call to the function”
“
作者: ydfgic 发布时间: 2010-04-15
系统调用gettimeofday 是线程安全,这个是c库里的函数啊,虽然没有看c库源码,但是我确实试出来了不一致
作者: ydfgic 发布时间: 2010-04-15
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28