摘要:
b站视频 文章1 C++中原子变量确保共享变量的操作在执行时不会被其他线程的操作干扰。 无法复制/移动对象。 memory_order atomic对象可以通过指定不同的memory orders来控制其对其他非原子对象的访问顺序和可见性,从而实现线程安全。常用的memory orders包括(参考 阅读全文
摘要:
请直接看:C++中using的四大用法总结 补充说明:第四点就是为了防止如下错误: #include <iostream> using namespace std; class base { public: void test() { cout << "base::test()" << endl; 阅读全文
摘要:
转载C++11 make_shared make_unique和make_shared同理。 make_shared初始化的优点和缺点 使用new初始化shared_ptr,则会先创建new一个对象,然后再创建一个控制块块 使用 make_shared就会一次性分配对象内存和控制块 make_sha 阅读全文
摘要:
两个值: 对齐系数:一般为8个字节。#pragma pack(8)设置对齐系数为8。 有效对齐值:假设结构体中最长的类型的长度为len,则有效对齐值=min(len,对齐系数)。 计算规则: 计算存放的位置:第一个成员放在位置0,后面的成员A存放的时候,会先计算size=min(A大小, 有效对齐值 阅读全文
摘要:
基础篇 MySQL 执行流程 MySQL 的架构共分为两层:Server 层和存储引擎层, Server 层负责建立连接、分析和执行 SQL。 存储引擎层负责数据的存储和提取。支持 InnoDB、MyISAM、Memory 等多个存储引擎。InnoDB 支持索引类型是 B+树 ,且是默认使用,也就是 阅读全文
摘要:
``` if (t_cachedTid == 0) // __builtin_expect 是一种底层优化 此语句意思是如果还未获取tid 进入if 通过cacheTid()系统调用获取tid { cacheTid(); } ``` ``` if (__builtin_expect(t_cached 阅读全文
摘要:
https://blog.csdn.net/monokai/article/details/106626945 https://xiaolincoding.com/os/8_network_system/hash.html 删除节点:那么很多key的缓存都没有了,那么即使多个其他节点用于处理这些ke 阅读全文
摘要:
进程、线程、协程的区别: 资源分配的基本单位 资源调度的基本单位 轻量级的线程 切换 页表、栈等 程序计数器、栈、寄存器等 栈和寄存器 切换代价越来越小 协程不用进入内核态,在用户态。它两陷入内核态的原因:进入内核态保存上下文信息。 # 进程的通信方式 **管道:**通信方式是效率低的,因此管道不适 阅读全文
摘要:
硬件结构 冯诺依曼模型、寄存器、总线、指令 冯诺依曼模型:运算器、控制器、存储器、输入设备、输出设备。 寄存器种类: 通用寄存器,用来存放需要进行运算的数据,比如需要进行加和运算的两个数据。 程序计数器,用来存储 CPU 要执行下一条指令「所在的内存地址」。 指令寄存器,用来存放当前正在执行的指令, 阅读全文
摘要:
# sentinel(哨兵) **哨兵集群:**哨兵会每隔 1 秒给所有主从节点发送 PING 命令,如果哨兵没有收到响应,哨兵会认为节点出现故障了。通过多个哨兵节点一起判断,就可以避免单个哨兵因为自身网络状况不好,而误判主节点下线的情况。这多个哨兵组成一个哨兵集群。 **主观下线与客观下线:** 阅读全文