5
我有如下所示的一些代码:C++一个原子阵列是否也需要是原子的?
KMessageQueue::KMessageQueue()
{
messages = new atomic<KBuffer*>[MAX_MESSAGES];
for (int i = 0; i < MAX_MESSAGES; i++)
messages[i].store(nullptr);
}
其中消息是KMessageQueue的成员,定义为:
std::atomic<KBuffer*>* messages;
所以消息数组中的每个元素是原子的,我从读取它们另一个线程。 但数组指针本身也需要是原子吗?在构造函数完成之后,另一个线程是否可以尝试访问消息,只发现消息还没有被赋值?