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() 的 a 是否安全?
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() 的 a 是否安全?