2
考虑这个例子:是否加入std :: thread flush内存?
#include <string>
#include <chrono>
#include <atomic>
#include <thread>
#include <iostream>
std::string some_variable;
void writer_thread()
{
std::this_thread::sleep_for(std::chrono::seconds(1));
some_variable = "done";
}
int main()
{
{
std::thread w(&writer_thread);
w.join();
}
std::cout << some_variable;
}
是我有必要增加一个同步机制,以确保some_variable
正确地从main()
读?
换句话说:加入或破坏std::thread
对象意味着与其局部变量关联的内存是否被刷新?