线程安全概念
- 多线程同时访问保证其逻辑正确性
- 在多线程同时运行时,保证线程执行顺序的正确性
- 调用该部分代码时,不需要额外的同步操作,从这些方面可以判断出标准库中如vector,list,map等都是非线程安全的。
如何避免在对象析构时可能的死锁呢
对象析构可能出现竞争情景:
- 在对象即将析构时,如何确定当前没有其他线程引用该对象?
- 如何保证在执行成员函数期间,对象不会被其他线程析构掉?
- 在调用每个对象的成员函数前,如何得知对象还活着?会不会它的析构函数正好执行到一半?
shared_ptr 的线程安全
浙公网安备 33010602011771号