沉着的沙滩裤 · 前端代码相关规范-腾讯云开发者社区-腾讯云· 1 年前 · |
奔放的打火机 · Java数据文件管理 ...· 1 年前 · |
忧郁的烤土司 · 如何在python中使用moviePy动态地 ...· 1 年前 · |
帅呆的柠檬 · SVG+CSS3 打造舞动的机械人 - 简书· 1 年前 · |
礼貌的针织衫 · ORA-01741:非法的零长度标识_51C ...· 1 年前 · |
mktime的手册页面没有提到mktime的线程安全性,但是它确实提到了这一点,这使得它看起来像线程 不安全的 。
调用mktime()还使用有关当前时区的信息设置外部变量tzname。
我知道在Linux上,mktime调用tzset来设置tzname,这是char*[]:
外焦2;
而tzset将读取环境变量TZ和文件/etc/localtime。因此,除非mktime使用互斥锁来保护所有这些操作,否则我看不出它如何是线程安全的。
发布于 2013-08-21 10:45:17
的确,
mktime
有副作用,但在大多数程序中,副作用应该是无害的。
根据
POSIX
,副作用就像调用了
tzset
一样,这反过来只是将时区信息从
TZ
环境变量复制到C字符串的
tzname
数组中。如果应用程序不更改
TZ
,那么并发调用
mktime()
就没有问题。
除此之外,GNU的
tzset
does use a mutex
保护
tzname
的完整性。这是一个质量的实施补充,没有保证的标准.
https://stackoverflow.com/questions/18355101
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287