标签: c++ boost shared-ptr
boost::shared_ptr<A> g_a; void func1(boost::shared_ptr<A> v) { g_a = v; } void func2() { boost::shared_ptr<A> a = g_a; // a is good? }
当func1()和func2()从不同的线程执行时,一个func2()是安全的吗?
答案 0 :(得分:2)
没有。有数据竞争。一个线程写入g_a,另一个线程读取g_a。需要同步。