Question Ans

2023_02_22

2023_02_22

bingliaolong 3年前 15 0

原子操作 概念 所谓原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何context switch 原子操作可以保证正在工作的动作不被打断,即一旦开始,持续到结束。对比互斥锁优势在于,原子操作是在C/C++的层面,是无锁操作,既能解决并发...

2023_02_09

2023_02_09

bingliaolong 3年前 13 0

Part1 32位内存大小和对齐 string构造开销对比 判断一个类有没有虚函数 判断链表有没有环 Part2 thread 调用CreateThread可以创建一个线程内核对象,内核对象创建成功后,系统会给它从进程的地址空间分配空间供线程使用。 系统把传给CreateThre...

2022_09_14

2022_09_14

bingliaolong 3年前 18 0

智能指针 C++11_ 第二篇 C++11_ 第三篇 进程间通信 共享内存 让两个进程的虚拟地址空间映射到同一组物理内存页 Linux POSIX:shm_open + ftruncate + mmap System V:shmget + shmat 匿名共享映射:mmap(.....

2022_02_24_02

2022_02_24_02

bingliaolong 4年前 17 0

Windows点击X关闭窗口的过程 WM_CLOSE 这是点击“X”按钮后产生的第一个消息,是一个关闭请求 应用程序可以在此阶段决定是否允许关闭 例如,如果文档有未保存的修改,程序可以弹出一个对话框询问用户是否保存 WM_DESTROY 当窗口确定要关闭时(通常是调用了 Dest...

2022_02_18

2022_02_18

bingliaolong 4年前 26 0

static 修饰全局变量 加不加static都是静态存储方式 加了static,只初始化一次,防止在其他源文件中被引用 修饰局部变量 变成静态存储方式,变量的生命周期变长,作用范围不变 只初始化一次 修饰函数 加了static之后,函数在内存中只有一份 没加的话,普通函数在每个...

2020_04_22

2020_04_22

bingliaolong 6年前 28 0

vector.size() && vector.capacity() 相关介绍 size() 返回容器里面当前存放的元素个数 capacity() 在不重新分配内存的情况下,vector或string能存放的元素的最大个数 shrink_to_fit() 将cap...

2022_03_01

2022_03_01

bingliaolong 4年前 16 0

查看内存泄露的方法 Visual Studio CRT 库方法 这是最直接的内置方法,特别适合在开发调试阶段快速发现问题 Visual Leak Detector (VLD) 在包含main()函数的源文件中包含头文件即可:#include <vld.h> 在Debu...

2022_02_24_01

2022_02_24_01

bingliaolong 4年前 8 0

godbolt.org 空类编译器会产生出什么函数 在C++中,当你定义一个空类时,编译器为了确保对象能够被正常创建、复制、赋值和销毁,会自动生成一些必要的成员函数 默认构造函数:用于创建类对象时的初始化 拷贝构造函数:用于通过同类型的其他对象初始化新对象 析构函数: 用于对象销...

2022_02_26

2022_02_26

bingliaolong 4年前 8 0

界面白屏,如何定位问题 发生在初始化阶段 检查窗口创建和消息循环 在窗口创建后、进入主消息循环前添加日志或断点 验证消息泵(Message Pump)是否在正常运行,没有因为某个消息被阻塞 审查资源加载 检查程序启动时加载的大型资源,如图片、字体等,是否存在或已正确载入 加载失败...

扫一扫二维码分享