如何存储多个原子变量?

问题描述

我正在编写一个C ++程序,当前遇到一个问题,我需要原子(最好是std :: atomic_flag)具有线程安全标志。问题是我需要多个不同的原子标志,而不是像这样手动声明它们:

std::atomic_flag flag1 = ATOMIC_FLAG_INIT;
std::atomic_flag flag2 = ATOMIC_FLAG_INIT;
std::atomic_flag flag3 = ATOMIC_FLAG_INIT;

理想情况下,我想在一个数组中声明它们(无法在线阅读)。我想将它们存储在容器中的原因是我想使用索引访问它们。 我的不同线程均获得一个索引,该索引告诉它们将哪个atomic_flags分配给了它们。在主线程中,我可以使用这些索引来相应地设置标志。

[编辑] 我已成功识别出所有错误。我不断收到访问冲突错误,并错误地认为它们与数组中的原子变量存储有关。我如何将索引传递给线程实际上是一个错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)