C++基础学习

1.核心态与用户态?
4.智能指针的原理、常用的智能指针及实现?

1.内核态和用户态是操作系统中两种不同的CPU执行模式,它们的主要区别在于权限、资源访问能力和安全性。内核态拥有最高权限,可以执行所有系统资源,错误可能导致系统崩溃。用户态,较低权限,只能访问受限资源、错误通常只导致进程崩溃。

4.动态分配的资源,交给一个类对象去管理,当类对象声明周期结束时,自动调用析构函数释放资源。share_ptr的实现采用引用计数的方式,允许多个智能指针指向同一个动态内存对象,每当增加一个智能指针指向该对象,引用计数就会加1,当析构一次就会进行减1,当引用计数为0的时候,就会对动态内存进行释放。unique_ptr采用独享资源所有权语义,一个非空的unique_ptr总是拥有它所指向的资源。不支持拷贝和赋值的操作,可以进行移动。weak_ptr共享资源的观察者,需要和shared_ptr一起使用,不影响资源的生命周期,以前的引用计数有一个问题就是互相形成环,这样两个指针指向的内存都无方释放,如果它和share_ptr同时指向,那么当引用计数为0的时候就会资源释放,不管是否还有weak_prt指向它。
全部评论

相关推荐

评论
2
5
分享

创作者周榜

更多
牛客网
牛客企业服务