我正在使用互斥锁保护指针,以进行已经这样的写入
// thread1
if(pointer)
{
boost::mutex::scoped_lock lock(pointer_mutex);
if(pointer)
pointer->DoStuff();
}
// thread2
if(pointer)
{
boost::mutex::scoped_lock lock(pointer_mutex);
if(pointer)
pointer = anotherPointer;
}
// thread3
if(pointer)
{
boost::mutex::scoped_lock lock(pointer_mutex);
pointer = 0;
}
我不想把那个互斥锁放在块之外,因为指针在 99.999 的时候是空的。
这工作正常,没有崩溃,但我没有足够的经验声明它是线程安全的。
我的问题是:
if(pointer) 指针 = 0; 指针 = 另一个指针;原子?
谢谢你。