- 博客(10)
- 收藏
- 关注
原创 线程安全的单例模式C++实现
单例模式的介绍单例模式的优点是只有一个对象,可以节省资源,提高运行速度,提供一个全局的访问点。在使用过程中,写一个具有单例模式思想的程序可以很简单,但是如果要做到线程安全并且生成实例的过程中符合业务需求,是一件困难的事情。Lazy mode(懒汉模式)懒汉模式,会将实例化的时间延迟到正式调用接口的时候。简单的实现方式class singleton{public: singleton* getInstance() { if(p_singletonIns == nullptr) {
2022-01-23 16:27:15
3280
4
原创 个人笔记:C++之RAII
理解RAII类RAII:Resource Acquisition Is Initialization。用中文来说就是资源获取就是初始化。在这个类的实例的生命周期中,初始化构造的时候,就将资源获取了,而在调用析构函数的时候,将资源释放了,这样避免了资源的泄露。所以重点在于使用什么手段来结束类的生命周期?在这里与程序中的栈的局部变量的生命周期的,因为在函数调用结束后,系统会将栈的空间进行回收,如果是分配在栈空间上的类,则会在这个过程中调用类的析构函数。而在RAII类的实现中,正是利用了这个机制,将RAII
2022-01-08 08:58:46
185
原创 在glibc中是如何分配一块堆内存的(malloc)
为什么在linux上读取到空指针会导致程序crashlinux会为进程的用户空间的0x0的虚拟地址映射到一个用户没有权限访问的页中,内核保证没有其它页映射到这个区域。编译器会将空指针编译成指向0x0的虚拟地址,程序可以去读取地址这时候会按照正常流程,读取地址就会触发缺页中断,缺页异常程序会被调用,然后去读取一块没有访问权限的页,缺页异常程序发现没有访问权限,内核会发送SIGSEGV 信号给进程,该信号默认是让进程自杀。...
2021-11-23 09:01:56
280
原创 git 使用
使用hard值恢复文件对没有被git track到的文件没有用使用git stash save " commit" 保存备注使用 git stash,需要注意的是这会将工作区的还原到上一次git pull的状态,虽然当前已经修改的工作区的内容会保存到stash中,但是在不用切换到其他分支时,或者pull时,不要随便使用该命令.git stash apply or pop 将stash的代码恢复中git log all 修复HEAD error的问题git checkout --orphan ne
2020-09-25 14:41:53
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人