![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
manjaro21
想的开才会收获的更多
展开
-
MYSQL锁机制
mysql中的锁 读写锁 读锁会阻塞写,但不会阻塞读(共享锁) 写锁会阻塞读和写(排他锁) 行页表锁(按照锁的粒度进行划分) 对表中的记录加锁,叫做记录锁,又称行锁,行锁只锁定一行,偏写 *行锁是基于索引的 表锁会锁定整个表,偏读 页锁在行锁和表锁之间 InnoDB加锁 对于UPDATE、DELETE和INSERT语句,InnoDB会自动给涉及及数据集加排他锁 对于普通SELECT语句,InnoDB不会加任何锁 事务可以通过以下语句显示给记录集加共享锁或排锁。 //共享锁(S) SELECT *原创 2020-10-14 15:04:42 · 66 阅读 · 0 评论 -
数据库事务
概念 事务就是保证一组数据库操作,要么全部成功,要么全部失败。在Mysql中,事务支持是在引擎层实现的(innodb)。 事务的ACID特性 原子性:事务所包含的一系列数据库操作要么全部执行,要么全部回滚 一致性:事务必须使数据库从一个一致性状态变换到另一个一致性状态 隔离性:多个事务并发执行时,不能先相互影响 持久性:一个事务一旦被提交,那么对数据库中的数据的改变就是永久性的 事务并发导致的问题 脏读 一个事务读取了另一个事务未提交的数据; 事务A读取事务B更新的数据,然后事务B回滚,此时事务A读原创 2020-10-14 15:04:01 · 89 阅读 · 0 评论 -
C++智能指针
1.unique_ptr 故名独一无二的,所有权只能一个指针拥有,没有拷贝构造函数 使用get可以得到一个普通指针 release()断开unique_ptr与底层指针的连接。返回底层指针,然后将智能指针设置为nullptr,智能指针失去所有权 复制是可以使用右值语义 auto ptr = make_unique<int>(10); unique<int> ptr(new int(10)); p1 = std::move(p2); int *p2 = ptr.get();//得到原创 2020-09-06 16:47:31 · 118 阅读 · 0 评论 -
从源码到可执行文件的过程
从源码到可执行文件的过程 g++ hello.cpp -o hello 1.预处理 g++ -E hello.cpp -o hello.i //生成.i文件 //-o 指的是将结果输出并指定输出的文件名 处理#define 宏定义 处理所有的条件预编译指令,“#if #endif” 处理“#include”指令 删除所有的注释 添加行号和文件标识 2.编译 gcc -S hello.cpp(.i) -o hello.s //生成.s文件(汇编文件) 词法分析 语法分析 语义分析 优化 3.原创 2020-08-29 15:07:50 · 211 阅读 · 0 评论 -
C++中的抽象类和接口
面向对象中的抽象类 不可以被实例化的类 C++中通过纯虚函数实现抽象类(virtual void xxx()=0) 派生类必须要override该虚函数,否则派生类也不可以被实例化 面向对象中的接口 类中没有定义任何成员变量 所有的成员函数都是公有的 所有的成员函数都是纯虚函数 接口是一种特殊的抽象类 ...原创 2020-08-19 14:30:41 · 81 阅读 · 0 评论 -
服务端向客户端发送图片并显示在QML中
服务端发送图片 1.打开图片文件 // 1. 打开图片文件 ifstream is(filepath, ifstream::in | ios::binary); if(!is.is_open()) { cout<<"open failed"<<endl; exit(0); } 2.获取图片文件长度 // 2. 计算图片长度 is.seekg(0, is.end); int length = is.te原创 2020-12-01 13:55:29 · 400 阅读 · 0 评论 -
Unicode、ASCII、UTF-8的区别
1.ASCII 一共规定了128个字符的编码(一个字节8个为,也就是一个字节可以呈现出256种不同的状态),这128个字符,只占用了一个字节的后七位,最前面的一位统一规定为0(所能表示的符号有限) 2.GB2312简体中文的常见编码方式 GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。区位码一般 用10进制数来表示,如1601就表示16区1位,对应的字符是“啊”。在区位码的区号和位号上分别加上0xA0就得到了GB2312编码。原创 2020-06-14 10:57:48 · 191 阅读 · 0 评论 -
QML写界面问题总结
1.页面之间的跳转 var component = Qt.createComponent("Core.qml"); //想要跳转的界面 component.createObject(loginPage);//当前界面的id名 若跳转界面时,发现前一个界面的click事件仍然存在,则可以在新界面中使用 //屏蔽父对象的鼠标事件 MouseArea{ anchors.fill: parent } 2.返回前一界面,可以使用 addui.destroy(); //当前界面的i原创 2020-05-30 13:43:20 · 338 阅读 · 0 评论