std::chrono::time_point 线程安全吗?

Posted

技术标签:

【中文标题】std::chrono::time_point 线程安全吗?【英文标题】:Is std::chrono::time_point thread safe? 【发布时间】:2020-07-28 21:49:33 【问题描述】:

我有一个要跨线程修改的std::chrono::time_point<std::chrono::steady_clock> 变量,这个变量线程安全吗?如果没有,我打算让它成为原子的。

【问题讨论】:

一般经验法则:如果文档未提及线程安全,则假定它不安全。线程安全成本很高,C++ 的政策是不强制程序为它不使用的任何东西付费。绝大多数情况不需要线程安全,因此将其强加于它们违反了您使用的唯一付费策略。更糟糕的是,大多数时候你想让整个事务线程安全,保护一个小角落线程的安全通常是浪费精力。 Java 通过Vector 发现了这一点。 你的意思是你可能同时在两个线程中修改它?或者您的意思是一个线程可能正在修改它,而另一个线程正在访问它,并且您需要确保访问线程获得任一值? 【参考方案1】:

我有一个要跨线程修改的std::chrono::time_point<std::chrono::steady_clock> 变量,这个变量线程安全吗?

没有。 std::chrono::time_point<std::chrono::steady_clock> 不保证是线程安全的。

【讨论】:

以上是关于std::chrono::time_point 线程安全吗?的主要内容,如果未能解决你的问题,请参考以下文章

当前本地时间高精度

std::chrono:将时钟的纪元设置为 1/1/0000

C++每日一练4.获取当前系统时间系统时间戳

直通线交叉线反转线怎么连接

微带线和带状线有啥异同?

如何使用3线-8线译码器和各种数字集成电路构成一个2线-4线译码器??????请画出电路图!!!!