自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 MySQL加锁规则

因为此时有间隙锁,范围是(1,5),也就是说右边界是LOCK_DATA的值,左边界是这条记录的上一条记录,也就是1.秋招了,之前看过的MySQL的很多都已经记不清楚了,跟着小林的图解MySQL回顾一遍,记录一些。LOCK_DATA表示锁的范围,此时表示id为1的这一条记录。LOCK_MODE为X,REC_NOT_GAP表示记录锁,此时新开一个事务B,插入id=3的一条新的记录,会被阻塞。LOCK_TYPE是锁的级别,TABLE表示表级锁。LOCK_MODE是锁的类型,IX表示X型的意向锁。

2023-09-01 17:08:26 138 1

原创 C++之std::async()

如果选择异步执行策略,调用get时,如果异步执行没有结束,get会阻塞当前调用线程,直到异步执行结束并获得结果,如果异步执行已经结束,不等待获取执行结果;(可以试试调换代码中异步和同步get的顺序,可以明显发现在执行异步时,如果没有执行结束,get会阻塞当前调用线程,直到有结果,而同步的话,只有在调用get时,才开始执行)3.std::launch::async | std::launch::deferred 是将同步还是异步的选择权交给操作系统,由操作系统去抉择。3.timeout:异步操作超时。

2023-08-15 19:53:07 781

原创 C++的内存对齐

举个例子:比如intel 32位cpu,每个总线周期都是从偶地址开始读取32位的内存数据,如果数据存放地址不是从偶数开始,则可能出现需要两个总线周期才能读取到想要的数据,因此需要在内存中存放数据时进行对齐。在学习操作系统的时候,看到对于伪共享的应对方法是内存对齐,由此想到了C++中的内存对齐问题,之前学习的时候并没有注意这一点,今天梳理一下。C++中的内存对齐,是为了提高内存的访问效率,防止一次读取内存就能解决的问题,需要两次甚至更多次的访问内存。在内存中存放一个结构体的实例。可见,需要两个总线周期。

2023-08-07 21:09:45 137

原创 override 和 overload

被重写的方法不能为private,静态方法不能被重写为非静态,重写方法的访问修饰符一定要大于被重写方法的访问修饰符。可以重载的,可以是类的成员函数,也可以普通函数,也可以重载运算符。只有在运行阶段才能确定调用的是哪个函数。即面向对象的多态特性,即。在编译的时候,根据参数列表判断调用哪个函数。参数个数不同,参数的类型不同,或者两者兼有。函数名,参数列表完全相同、返回值也相同。可以覆盖的,只能是子类重写父类的虚函数。仅返回值类型不同,不能认为是函数重载。封装:实现代码的模块化。的一种形式,实现多态。

2023-08-02 17:58:21 211 1

原创 C++中基类和派生类

那么他就应该上学,这是学生该做的事情。这么做是非常有道理的,是满足继承的要求的。例如,编译器允许基类引用隐式地引用派生类对象,可以利用该基类引用为所引用的派生类对象调用基类的方法。如代码所示,如果我用Person的指针和引用调派生类Student自己的方法goSchool(),那么编译器是绝对不会通过的。注意:虽然基类的指针和引用可以指向、引用派生类,但是反过来是绝对不可以的。派生类的指针和引用是绝对不可以指向、引用基类的。此时需要注意,虽然基类指针指向的是派生类的对象,但其调用的仍是基类的函数。

2023-08-02 16:27:14 279 1

原创 C++之动态、静态联编

在运行阶段,实现的联编称为动态联编。在C++中一般是静态联编,只有在实现虚函数的时候,会出现动态联编,即基类的指针指向派生类的地址或将派生类的对象赋给基类的引用。虚函数的调用规则是:根据当前对象,优先调用对象本身的虚成员函数。这和名字支配规律类似,不过虚函数是动态联编的,是在运行时(通过虚函数表中的函数地址)“间接"调用实际上欲联编的函数。联编,即绑定,就是将模块或者函数合并在一起生成可执行代码的过程,同时对每个模块或函数分配内存地址,并且对外部访问也分配正确的内存地址。动态联编:类成员函数动态。

2023-08-01 17:44:10 182 1

原创 define和typedef的区别

3.常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,在静态存储区中分配空间,但在程序运行过程中,内存中只有一个拷贝,也就是不分配实际的内存空间。3.通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏。4.在语法上是一个存储类的关键字,如:auto;虽然它并不真正的影响对象的存储特性。1.#define是预处理指令,只在预处理阶段起作用。2.只是进行简单的字符串的替换,没有类型检查。两者都可以实现重定义的功能。1.在编译、运行阶段起作用。

2023-07-31 22:07:07 129 1

原创 常量指针和指针常量的区别

const的作用:被他修饰的值不能改变,即只读变量,因此必须在定义时赋初值,即需要初始化。是指定义了一个指针,指向一个只读变量,不可以通过这个指针去改变变量的值。是指定义一个指针,这个指针只能在定义时初始化,其他地方不能改变。结论:常量指针无法通过指针修改变量的值。首先是修饰字const。

2023-07-31 20:35:21 104 1

原创 C++之共有继承、保护继承、私有继承

结论:私有继承中,在派生类中,能访问基类的public(在派生类中变为private)、protected成员(派生类中变成private),不能访问private成员;结论:保护继承中,在派生类中,能访问基类的public(在派生类中变为protected)、protected成员,不能访问private成员;结论:共有继承中,在派生类中,能访问基类的public、protected成员,不能访问private成员;在派生类外,即通过类对象只能访问public成员,基类的成员都不能被访问。

2023-07-31 17:22:55 490 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除