
Linux多线程服务端编程
Error Man
我是菜逼
展开
-
借 shared_ptr 实现 copy-on-write(避免死锁,mutex替换rwlock)
书中提到假设有下面代码: MutexLock mutex; std::vector<Foo> foos; void post(const Foo &f) { MutexLockGuard lock(mutex); foos.push_back(f); } void traverse() { MutexLockGuard lock(mutex); for(std::vector<Foo>::const_iterator it = foos.begin(); it !原创 2020-06-20 22:39:57 · 549 阅读 · 0 评论 -
关于 shared_ptr 的线程安全
原文地址:https://www.cnblogs.com/gqtcgq/p/7492772.html shared_ptr的引用计数本身是安全且无锁的,但对象的读写则不是,因为 shared_ptr 有两个数据成员(指向被管理对象的指针,和指向控制块的指针),读写操作不能原子化。根据文档(http://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm#ThreadSafety), shar转载 2020-06-18 17:30:04 · 522 阅读 · 0 评论