当前时间必须全局存储才能使gettimeofday正常工作,但我不确定该函数是否修改了任何全局状态,以便并发执行未定义。
答案 0 :(得分:22)
gettimeofday是线程安全的。
here列出的(posix)函数可能不是,gettimeofday不是其中之一。
答案 1 :(得分:3)
是的,它是线程安全的。它修改的唯一数据是你传递指针的结构,因此一个非线程安全的实现必须做一些怪异的事情。
祝你的项目好运。
答案 2 :(得分:2)
在glibc
中,gettimeofday(2)
是一个围绕系统调用的简单包装器(实际上是vsyscall
)。用户区中未触及任何数据。它是线程安全的。
答案 3 :(得分:1)
此调用未修改任何数据。你得到一份副本。因此它完全是线程安全的。