八股记录
线程间通信方式
面试官:说说进程间通信和线程间通信的几种方式及区别 - 知乎 (zhihu.com)
消息队列和管道
(116条消息) 消息队列与管道区别_管道和消息队列的区别_weichaopst的博客-CSDN博客
(116条消息) 管道、消息队列、共享内存之间的区别与联系_共享内存 管道_ttyue_123的博客-CSDN博客
消息队列存储为内核中的链表
锁,互斥访问
ABC交替打印
(116条消息) C++三个线程交替打印ABC_c++三线程交替打印abc_愿风丶裁尘的博客-CSDN博客
(116条消息) c++ 三个线程交替打印1~100_c++多线程打印1到100_whynotjie的博客-CSDN博客
TCP沾包问题
面试题:聊聊TCP的粘包、拆包以及解决方案 - 知乎 (zhihu.com)
【转】关于TCP和UDP协议消息保护边界的介绍-阿里云开发者社区 (aliyun.com)
怎么解决TCP网络传输「粘包」问题? - 知乎 (zhihu.com)
(116条消息) TCP中的粘包、拆包问题产生原因及解决方法_tcp粘包/拆包的解决办法_dreamer'~的博客-CSDN博客
7层和5层网络
一文读懂OSI七层模型和TCP/IP五层模型 - 知乎 (zhihu.com)
多态常用在什么地方
(116条消息) C++多态的概念与使用(详细介绍)_多态c++概念_Cola_Forever的博客-CSDN博客
内联函数
C++内联函数 - melonstreet - 博客园 (cnblogs.com)
tp
boost
(116条消息) 最新超详细C++经典Boost库介绍_Come_code的博客-CSDN博客
c++类互相包含
(116条消息) C++_类互相包含_wjjontheway的博客-CSDN博客
(116条消息) 【C++ Primer】两个类相互包含的求解策略_iteye_6233的博客-CSDN博客
(116条消息) 关于两个类互相引用的析构问题_一口桃子酒的博客-CSDN博客
或者用智能指针来解决
成员类先构造后析构
linux中断处理简介
(116条消息) Linux 中断之中断处理浅析_爱洋葱的博客-CSDN博客
(116条消息) Linux 中断(包括:中断背景,定义,处理过程,类型,上下部分,中断上下文等)_linux 判断外部中断类型_Hani_97的博客-CSDN博客
找到前k大的数据
topK 问题:如何在N个数中找到前K个最大的数 - 掘金 (juejin.cn)
操作系统死锁
操作系统——死锁的概念以及死锁处理策略 - 王陸 - 博客园 (cnblogs.com)
智力题:硬币分为上下相等的两堆
(116条消息) 将硬币分成正面朝上个数相等的两堆_realxie的博客-CSDN博客
线程过多//内存,时间切换,缓存冲突
(116条消息) 为什么线程过多会损害性能_线程数过多会造成什么异常_TurboSnail001的博客-CSDN博客
IP和TCP分片
动图图解!既然IP层会分片,为什么TCP层也还要分段? - 知乎 (zhihu.com)
c++中static使用
C++中的static关键字的总结 - 知乎 (zhihu.com)
c++内存泄漏查找asan
(116条消息) 【内存】内存检测工具sanitizer[内存泄漏、内存越界] VS valgrind_global-buffer-overflow_bandaoyu的博客-CSDN博客
线程崩溃会导致全部崩溃,进程崩溃只有自己出事
malloc的实现
(116条消息) Linux内存的工作(malloc,brk系统调用和mmap系统调用)_malloc brk mmap_lwj~的博客-CSDN博客
智力题
(116条消息) 有五个山洞,一字排开,一只狐狸住在某个洞,每天晚上会换住到相邻的洞中,一个猎人只能每天早上去一个洞_5个洞抓1只_gtkiller的博客-CSDN博客
快排最坏的情况
(116条消息) 快排最坏时间复杂度_快速排序的最坏时间复杂度_肯德基套餐的博客-CSDN博客
哈希冲突处理
(116条消息) 解决哈希冲突(四种方法)_哈希冲突的四种解决办法_君诀的博客-CSDN博客
两个单链表是否相交
访问一个url的过程
(116条消息) 访问一个URL经历了哪些过程_昵給硪鐙誒的博客-CSDN博客
socket部分
一文让你透彻理解Linux的SOCKET编程(含实例解析) - 知乎 (zhihu.com)
内存管理
深度阅读:深入 C++ 内存管理(万字长文) - 知乎 (zhihu.com)
联洲
抢占式调度和非抢占式调度
(116条消息) 抢占式内核和非抢占式内核,时间片轮转调度中的抢占与非抢占_一定能毕业~的博客-CSDN博客
stoi,stol,用于将string转换为int和long
C/C++ 中 volatile 关键字详解 | 菜鸟教程 (runoob.com)
模板实例化时间
(124条消息) C++ 原子操作(atomic)_c++原子操作_Mr.禾的博客-CSDN博客
stl不是线程安全的
当我们谈论shared_ptr的线程安全性时,我们在谈论什么 - 知乎 (zhihu.com)
(124条消息) C++知识积累:如何获取虚函数表以及虚函数地址_得到虚函数表地址_HerofH_的博客-CSDN博客
(124条消息) C++学习 三、weak_ptr使用_c++ weak_ptr_RuiH.AI的博客-CSDN博客
shared_ptr 是否线程安全? | 光线誌 (beamnote.com)
面试题:简单实现一个shared_ptr智能指针-腾讯云开发者社区-腾讯云 (tencent.com)
讯飞
在机器学习项目中该如何选择优化器 - 知乎 (zhihu.com)
(123条消息) 【代码】优化算法BGD、SGD、Momentum、Adam算法python实现_sgd代码实现_yzy_1996的博客-CSDN博客
深度学习笔记:如何理解激活函数?(附常用激活函数) - 知乎 (zhihu.com)
一文搞懂熵(Entropy),交叉熵(Cross-Entropy) - 知乎 (zhihu.com)
梯度消失和梯度爆炸及解决方法 - 知乎 (zhihu.com)
残差神经网络为什么可以缓解梯度消失? - 知乎 (zhihu.com)
万字长文帮你彻底搞定Transformer-不要错过!! - 知乎 (zhihu.com)
深度强化学习落地方法论(7)—— 训练篇 - 知乎 (zhihu.com)
多态举例
(124条消息) C++面试常见题目5_面向对象的三大特性(封装,继承,多态)_不要急慢慢来的博客-CSDN博客
(124条消息) C++多态的好处和作用(用实例说话)_c++多态的作用_King'sEngine的博客-CSDN博客
(29 封私信) 为什么 std::stack 默认是 std::deque 的适配器,而非 std::vector? - 知乎 (zhihu.com)
C++面试-STL篇,细节有点多 - 知乎 (zhihu.com)
内存泄漏
(124条消息) C/C++如何监测内存泄漏_c++ 如何检测内存泄漏_千么漾漾的博客-CSDN博客
CRT 检测内存泄漏的关键原理就是,检查malloc/new和free/delete是否匹配,一些工具也就是这个原理。要做到这点,就是利用宏或者钩子,在用户程序与运行库之间加了一层,用于记录内存分配情况。
_CrtMemState s1, s2, s3;
_CrtMemCheckpoint( &s2 );
if
( _CrtMemDifference( &s3, &s1, &s2) )
_CrtMemDumpStatistics( &s3 );
_CrtDumpMemoryLeaks();
【C++如何检测内存泄漏?】 - 知乎 (zhihu.com)
valgrind
valgrind --leak-check=full ./leak
valgrind的检测信息将内存泄漏分为如下几类:
- definitely lost:确定产生内存泄漏
- indirectly lost:间接产生内存泄漏
- possibly lost:可能存在内存泄漏
- still reachable:即使在程序结束时候,仍然有指针在指向该块内存,常见于全局变量
在申请内存时记录下该内存的地址和在代码中申请内存的位置,在内存销毁时删除该地址对应的记录,程序最后统计下还有哪条记录没有被删除,如果还有没被删除的记录就代表有内存泄漏。
其他
(124条消息) 聊聊Raft的性能优化_raft优化_李兆龙的博客的博客-CSDN博客
条件变量(Condition Variable)详解 - _小百 - 博客园 (cnblogs.com)
C++的匿名函数(lambda表达式) - 知乎 (zhihu.com)
[捕获列表](参数列表) mutable(可选) 异常属性 -> 返回类型 { // 函数体 }
int *p2 = new (nothrow)int;//如果分配失败,new返回一个空指针
如果我们不初始化一个智能指针,它就会被初始化成一个空指针,接受指针参数的职能指针是explicit的,因此我们不能将一个内置指针隐式转换为一个智能指针,必须直接初始化形式来初始化一个智能指针
不要使用get初始化另一个智能指针或为智能指针赋值
shared_ptr<int> p(new int(42));//引用计数为1
int *q = p.get();//正确:但使用q时要注意,不要让它管理的指针被释放
{
//新程序块
//未定义:两个独立的share_ptr指向相同的内存
shared_ptr(q);
}//程序块结束,q被销毁,它指向的内存被释放
int foo = *p;//未定义,p指向的内存已经被释放了
智能指针陷阱:
(1)不使用相同的内置指针值初始化(或reset)多个智能指针。
(2)不delete get()返回的指针
(3)不使用get()初始化或reset另一个智能指针
(4)如果你使用get()返回的指针,记住当最后一个对应的智能指针销毁后,你的指针就变为无效了
(5)如果你使用智能指针管理的资源不是new分配的内存,记住传递给它一个删除器
不能拷贝或者赋值unique_ptr,但是可以通过调用release或reset将指针所有权从一个(非const)unique_ptr转移给另一个unique
(125条消息) C++ 判断是大端存储还是小端存储_dmfrm的博客-CSDN博客
int nNum = 0x12345678; char chData = *(char*)(&nNum);
CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。
RPL说明的是进程对段访问的请求权限(Request Privilege Level),是对于段选择子而言的,每个段选择子有自己的RPL,它说明的是进程对段访问的请求权限,有点像函数参数。而且RPL对每个段来说不是固定的,两次访问同一段时的RPL可以不同。RPL可能会削弱CPL的作用,例如当前CPL=0的进程要访问一个数据段,它把段选择符中的RPL设为3,这样虽然它对该段仍然只有特权为3的访问权限。
DPL存储在段描述符中,规定访问该段的权限级别(Descriptor Privilege Level),每个段的DPL固定。
当进程访问一个段时,需要进程特权级检查,一般要求DPL >= max {CPL, RPL}
ROS2命令行操作 - ROS2入门教程 (guyuehome.com)
ROS 和 ROS2 架构和通信_ros2 中c/s通信_泠山的博客-CSDN博客
Cookie和Session的区别(面试必备)_cookie和session的作用和区别_秋风不识路的博客-CSDN博客
Linux进程间通信详解(最全) - 知乎 (zhihu.com)
系统操作原理:进程的状态和转换(五态模型) - 知乎 (zhihu.com)
进程调度的几种方式与算法简介_空临八荒醉清风的博客-CSDN博客
干货 | 进程、线程、协程 10 张图讲明白了! - 知乎 (zhihu.com)
gdb调试常见命令详细总结(附示例操作)_gdb调试命令大全_快乐的学习的博客-CSDN博客
C++总结2—shared_ptr交叉引用及多线程安全问题_shared_ptr 局部变量_zhangyin_blog的博客-CSDN博客
C++11智能指针 shared_ptr、weak_ptr和unique_ptr详解 - 知乎 (zhihu.com)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
2022-06-01 剑指offer笔记-c++
2022-06-01 算法时间复杂度和空间复杂度
2022-06-01 c++中的枚举类型