共享boost :: shared_ptr<>变量是线程安全的吗?

时间:2013-04-19 09:56:20

标签: 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()是安全的吗?

1 个答案:

答案 0 :(得分:2)

没有。有数据竞争。一个线程写入g_a,另一个线程读取g_a。需要同步。