摘要: 1.Robust锁 Robust锁(健壮锁)是POSIX线程库提供的一种特殊互斥锁,专门设计用于处理持有锁的进程或线程意外终止的情况,核心目的是解决因锁持有者崩溃导致的死锁问题。 2.使用场景 多进程共享内存的时候,某个进程持有锁后崩溃。导致锁无法释放,一直阻塞其他进程获取资源。 初始化Robust 阅读全文
posted @ 2025-09-26 15:13 一个不知道干嘛的小萌新 阅读(9) 评论(0) 推荐(0)
摘要: 1.DTS和PTS在使用I P P P没有B帧的情况下,两个时间戳是一样的。如果有B帧的情况就不一样。 因为B帧需要参考前后帧,因此在B帧编码的时候,需要先编码前后帧后再编码B帧,编码顺序:I->P->B,那么解码顺序也是I->P->B,但是显示顺序是I->B->P DTS:标记帧的解码时间(解码器 阅读全文
posted @ 2025-09-18 11:13 一个不知道干嘛的小萌新 阅读(12) 评论(0) 推荐(0)
摘要: 在 C++ 中,当类的成员变量被声明为 static 时,它属于类本身,而不是类的某个具体实例(对象)。 因此,static 成员变量需要在类外部进行定义(分配存储空间),否则在链接时会报错(undefined reference)。 为什么需要额外定义? static 成员变量的存储空间: 非 s 阅读全文
posted @ 2025-09-05 16:44 一个不知道干嘛的小萌新 阅读(15) 评论(0) 推荐(0)
摘要: 1. 基本概念与特性 固定大小:std::array 的大小在编译时确定,无法动态调整(与 std::vector 不同)。 栈分配:内存分配在栈上(除非作为类成员或通过动态分配),访问速度快。(当然也可以直接定义成全局变量) 与原生数组的对比: 支持迭代器、范围循环、STL 算法等。 提供边界检查 阅读全文
posted @ 2025-08-30 17:24 一个不知道干嘛的小萌新 阅读(14) 评论(0) 推荐(0)
摘要: 1.下载源码 https://sourceware.org/pub/valgrind/valgrind-3.25.1.tar.bz2 tar -xvf valgrind-3.25.1.tar.bz2 2.配置交叉编译 ./configure \ --host=arm-linux-gnueabi \ 阅读全文
posted @ 2025-08-29 12:05 一个不知道干嘛的小萌新 阅读(85) 评论(0) 推荐(0)
摘要: make MAKE_VERBOSE=yes 阅读全文
posted @ 2025-08-27 17:54 一个不知道干嘛的小萌新 阅读(6) 评论(0) 推荐(0)
摘要: 在 C++ 中,单例模式(Singleton Pattern) 是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。单例模式常用于管理全局资源、配置或共享状态,避免重复创建对象带来的开销或冲突。 1. 单例模式的核心思想 (1) 核心特性 唯一实例:整个程序中只能有一个 阅读全文
posted @ 2025-08-26 20:33 一个不知道干嘛的小萌新 阅读(127) 评论(0) 推荐(0)
摘要: 一、基础概念:文件流与头文件 1.文件流类 ofstream:输出文件流(写入文件)。 ifstream:输入文件流(读取文件)。 fstream:输入/输出文件流(可读写文件)。 头文件:必须包含 <fstream>(文件操作)和 <iostream>(输入/输出基础)。 其中ofstream中的 阅读全文
posted @ 2025-08-25 15:36 一个不知道干嘛的小萌新 阅读(103) 评论(0) 推荐(0)
摘要: 1.怎么初步定位死锁 pstree:查看线程层级关系,辅助确认线程数量是否异常。 top -H:观察线程状态和CPU占用,初步筛选可疑线程。 ps -T:显示线程阻塞的内核函数(如 futex_wait),定位锁竞争。 死锁确认:需结合 gdb 或 strace 分析线程调用栈和系统调用。 4. 实 阅读全文
posted @ 2025-07-04 21:29 一个不知道干嘛的小萌新 阅读(43) 评论(0) 推荐(0)
摘要: gdb主要用于调试用户态程序、内核模块及驱动程序,支持断点设置、单步执行、变量查看、堆栈回溯等功能,尤其适用于定位段错误、内存泄漏及多线程同步问题。 coredump的使用,以及客户的设备需不需要coredump,会不会coredump的文件大小过于大。 1.调试用户态程序(如应用程序崩溃) 段错误 阅读全文
posted @ 2025-07-03 20:29 一个不知道干嘛的小萌新 阅读(78) 评论(0) 推荐(0)