【发布时间】:2021-08-13 16:13:59
【问题描述】:
如果我有一个包含一些成员的结构,并且我希望有不同的线程读入这些结构。在这种情况下,我不需要做任何事情,因为我只阅读,但是如果我想 write 给成员,我是否必须使用原子并强制每个人在任何地方显式加载原子?就因为我偶尔写的一篇文章?
【问题讨论】:
-
如果这些写入和读取可能同时发生,那么,您需要原子。请注意,从 C++20 开始,您可以使用
std::atomic_ref,这使变量能够具有非原子类型。 -
顺便说一句,基本相同的问题不要问两次。这似乎是 stackoverflow.com/q/67686525/580083 的副本。相反,请按照其 cmets 中的建议编辑原始问题。
-
第一句:“读入这些结构的不同线程”——“读取”还是“写入”?或者两者兼而有之?请澄清这一点,并从标题中删除“C++”,这是标签的用途。
标签: c++ multithreading atomic