绪
本篇是尝试对C++11的三种智能指针(unique_ptr, shared_ptr, weak_ptr)进行的复现结果, 智能指针的复现在面试中经常考到, 需要好好熟悉....std::shared_ptr, 否则返回nullptr
智能指针的释放依赖于作用域, 所以当需要使用更大的生命周期时还是应该考虑手动管理或者在更大的作用域中使用智能指针
智能指针与垃圾回收的区别
相关讨论...v=JfmTagWcqoE
智能指针的回收通常指的是RAII(资源获取即初始化). 智能指针所采用的引用计数法属于一种垃圾回收技术
智能指针和完整的垃圾回收器旨在解决不同的问题....智能指针则完全由程序员控制
垃圾回收器对于资源的释放有时候有优化, 例如将大批需要释放的资源集中起来一起释放, 这可以提高回收的效率, 智能指针大多只能逐个释放....但是垃圾回收器的分析和执行仍然有很大的代价
垃圾回收器有时候会遇到缓存优化的问题, 而且回收的时间可能会造成停顿, 智能指针在这点上表现更好, 可以实时处理
垃圾回收器一般在单独的线程中执行, 而智能指针的回收在当前线程的析构函数中执行