- 论坛徽章:
- 0
|
本帖最后由 eagle518 于 2014-07-15 09:47 编辑
回复 14# windoze
内置类型线程安全我理解。
你能直接告诉我下面这段代码是否安全?若非安全,那问题会在哪里?
boost::shared_ptr<Object> ptr;
class Reader : public Thread {
virtual void Run {
for ( ; ; ) {
boost::shared_ptr<Object> local(boost::atomic_load(&ptr));
// do smth
}
}
};
class Writer : public Thread {
virtual void Run {
for ( ; ; ) {
boost::shared_ptr<Object> newPtr(new Object);
boost::atomic_store(&ptr, newPtr);
}
}
};
int main() {
Pool* pool = SystemThreadPool();
pool->Run(new Reader());
pool->Run(new Writer());
for ( ; ; )
}
##实测运行我未发现上面的代码存在异常。
|
|