施磊老师学习笔记
文章平均质量分 61
我想成为你噶叻叻猪
这个作者很懒,什么都没留下…
展开
-
Git的学习笔记4
小张和啊亮都git pull,两个人本地都获取了V1版本的代码,然后啊亮在本地将代码更新到了V3,然后将V3 push到了远程,git server发现V3就是基于V1版本修改的,于是git server将版本更新到V3接着小张将本地基于V1的代码更改为V2后,也push到远程,此时git sever发现V2的代码基于V1修改的,并不是基于V3修改的,于是会报错,产生冲突(如果不报错,啊亮提交的V3就全没了)原创 2024-06-08 20:38:09 · 219 阅读 · 0 评论 -
Git的学习笔记3
git checkout -- 在git add之前,把工作区的代码用版本库中的代码覆盖掉,注意命令中的--不能去掉,否则成切换分支的命令了git reset HEAD 把git add之后,暂存区的内容全部撤销git reset --hard commitid 把提交到本地仓库中的代码改动进行回退git reflog 查看HEAD指针的改动日志git push -f 强制推送本地仓库代码到远程仓库git diff HEAD -- 查看工作区file文件和仓库中该文件最新版本的代码有什么区别。原创 2024-06-08 17:47:02 · 417 阅读 · 0 评论 -
Git的学习笔记2
HEAD指针:在仓库的每个分支上,git log会记录所有提交的信息,每次提交都会生成一次记录以及一个commit id,HEAD指针指向的就是当前分支最新的一次修改,我们可以通过调整HEAD指针指向不同的commit id,来任意切换到不同的版本上。git clone之后,会把远程仓库的文件拉取一份到本地仓库,然后给远程仓库起了个名字,默认就叫origin(名字可在config中改),然后在本地仓库生成默认分支master(main),与远程的master(main)分支对应。本地就有一个仓库的文件夹。原创 2024-06-08 17:06:13 · 262 阅读 · 0 评论 -
Git的学习笔记1
没有本地仓库,只有远程仓库;所有的版本控制相关操作都是在SVN Server上进行,client和server必须通过网络连接,client才能发送处理请求以及访问server上代码,client没有本地仓库,只能提交到远程仓库有本地仓库和远程仓库;不需要网络,可以由各自的本地仓库管理代码版本,本地仓库记录了本地所有的代码的修改和提交。最后合并到远程仓库上。原创 2024-06-08 16:22:52 · 346 阅读 · 0 评论 -
C++学习笔记6
继上篇的剖析,这篇开始手写移植Nginx内存池。原创 2024-05-29 13:37:32 · 213 阅读 · 0 评论 -
C++学习笔记5
116102416ngx_alignsizeofngx_pool_t2sizeof11uintptr_tuintptr_t1uintptr_t1ngx_alloc申请的内存不大于4095则调用ngx_palloc_small,分配小块内存。否则size>4095调用ngx_palloc_large=>ngx_alloc=>malloc,申请大块内存。!!当前内存池的块不够分配。原创 2024-05-28 15:04:25 · 808 阅读 · 0 评论 -
c++笔记记录4
unique_lock就是删除拷贝构造赋值重载,但是加了右值引用,对临时变量可以拷贝构造赋值重载,相比与scope_ptr;生产者,消费者线程模型,不仅可以使用在简单的临界区代码段的互斥操作中,而且还能用在函数调用的过程中。竞态条件:多线程程序执行结果是一致的,不会随着cpu对线程不同的调用顺序而产生不同的运行结果。 1、线程间的互斥:竞态条件=》临界区代码段=》互斥锁mutex 轻量级的无所实现CAS。auto :可以根据右值,推导出右值的类型,然后左边变量的类型也就也已知了。原创 2024-05-27 22:27:06 · 402 阅读 · 0 评论 -
设计模式——单例模式(懒汉,饿汉)
1.单例模式:一个类不管创建多少对象,永远只能得到该类型一个对象的实例 常用:日志模块,数据库模块//饿汉:class singleton{public: //用户可以通过该接口调用静态对象 static singleton* getInstance(){//#3获取类的唯一实例对象的接口方法 return &instance; } private: static singleton instance; //#2定义一个唯一的类的实例对象 singleton(){}//#原创 2024-05-26 18:58:36 · 137 阅读 · 0 评论 -
c++笔记记录3
PFUNC 是一个指向函数的指针,该函数接受一个类型为 A1 的参数并返回类型为 R 的值。 bind2nd :operator()是一个函数适配器,它的作用是将一个值绑定到二元函数对象的第二个参数上,从而创建一个新的一元函数对象。 bind1st :operator()是一个函数适配器,它的作用是将一个值绑定到二元函数对象的第一个参数,从而创建一个新的一元函数对象。下面都是返回一个第一个大于70的元素,如果没有这样的元素,则迭代器it1/2将等于vec.end()。原创 2024-05-21 22:23:23 · 850 阅读 · 1 评论 -
c++笔记记录2
线程A和线程B访问一个共享的对象,如果线程A正在析构这个对象的时候,线程B又要调用该共享对象的成员方法,此时可能线程A已经把对象析构完了,线程B再去访问该对象,就会发生不可预期的错误。1.不带引用计数的智能指针 auto_ptr ,scoped_ptr,unique_ptr。由于weak_ptr可以不占资源引用计数,也就是解决带引用计数的智能指针的交叉引用问题。所以我们在定义对象的时候,用强智能指针,引用对象的时候,使用弱智能指针。2.带引用的只能指针 shared_ptr,weak_ptr。原创 2024-05-14 20:44:23 · 281 阅读 · 2 评论 -
c++笔记记录1
右值引用参数的拷贝/赋值构造,直接通过修改指针mptr=str.mptr;用临时对象拷贝构造一个新对象 Test t=Test(30), 相当于Test t(30)直接构造,且不用对临时对象的析构。5,接收返回值是对象的函数调用的时候,优先按初始化的方式接收,不要按赋值的方式接收。4,函数返回对象的时候,应该优先返回一个临时对象,而不要返回一个定义过的对象。8,std::move(),移动语义,将左值强转成右值引用类型。可以右值绑定到一个右值引用上。2,函数调用,实参=》形参, 是初始化的过程。原创 2024-05-13 21:27:05 · 373 阅读 · 1 评论