- 博客(35)
- 收藏
- 关注
原创 条件变量与互斥锁复习
只在访问共享数据(临界区)时上锁。业务逻辑应放在锁外执行。问题简答要点cv.wait()为什么要传入锁?让系统在 wait 内能自动释放并重新加锁,保证条件检查的原子性。会释放锁吗?❌ 不会;它只发信号,锁仍由当前线程持有。为什么要在 notify 前 unlock?防止被唤醒线程拿不到锁,造成白唤醒和吞吐下降。lock_guard和区别?前者作用域固定、不可 unlock;后者灵活可多次 lock/unlock。为什么 wait 要循环检查 predicate?
2025-11-03 14:47:11
604
原创 三层内存池
很好的问题!让我详细解释页是如何分配给线程的每个链表的。这涉及到从PageCache到CentralCache再到ThreadCache的完整流程。
2025-10-26 16:29:13
462
原创 【无标题】
比较项GROUP BYHAVING功能把记录分成组(聚合)对分组后的结果进行筛选执行阶段分组阶段分组之后可用列只能使用分组字段可以使用分组字段和聚合函数(SUM、COUNT等)是否必须不一定必须(可独立统计)必须依赖 GROUP BY举例“按大学统计平均分”“只保留平均分>3.5的大学”
2025-10-26 15:31:32
711
原创 【无标题】
通信机制核心 API特点优点缺点管道pipe()read()write()字节流、半双工简单易用仅亲缘进程通信消息队列msgget()msgsnd()msgrcv()结构化消息、异步支持优先级,无需同步内核维护队列,性能中等共享内存shmget()shmat()shmdt()映射物理内存速度最快需自行同步(信号量)信号signal()kill()异步事件通知快速、轻量只能传少量信息当然可以 ✅下面是TCP/IP 四层模型每一层的功能 + 常见协议举例 + 对应设备类型。
2025-10-23 10:43:31
575
原创 【无标题】
这些巧思不是简单的技术堆砌,而是经过深思熟虑的架构设计,体现了作者对高并发服务器开发的深刻理解和丰富的实战经验。每一个巧思都解决了实际生产环境中的具体问题,是真正有价值的工程实践!让我深入挖掘这个高并发服务器框架的关键设计巧思,这些巧思体现了作者深厚的技术功底和架构设计能力。这种设计既保证了高性能,又提供了良好的可维护性和可扩展性,是一个非常优秀的服务器框架设计!这是一个非常好的问题!让我详细分析这个高并发服务器框架如何处理不同的业务逻辑。
2025-09-14 12:18:17
557
原创 项目讲解22
这是Candidate发起选举的核心函数,负责选择新的Leader。:只有拥有最新日志的节点才能成为Leader,确保系统的一致性。这个函数体现了Raft算法的。你想继续看下一个函数。
2025-09-09 21:59:32
405
原创 优秀开源内容转自公众号后端开发成长指南
核心思想:能用 unique_ptr 就用 unique_ptr,能静态分析生命周期,避免 atomic 开销;需要多方共享才用 shared_ptr,并结合 weak_ptr 避免循环引用。std::unique_ptr:独占所有权,std::shared_ptr 共享所有权,通过引用计数来管理生命周期。“能唯一所有权就用 unique_ptr,必须共享就用 shared_ptr,控制引用计数就是控制你的性能。3)析构shared_ptr:use_count--,若为0调用删除器销毁对象;
2025-09-02 08:53:28
384
原创 线程池八股文
整体思路workers_里预先创建了 N 个线程,它们在循环里等待任务。任务被压入tasks_队列,condition_唤醒等待的线程。线程取任务时持有,保证对队列的访问安全。析构时设置,通知所有线程退出并 join。关键细节用存放任意任务。用防止虚假唤醒。任务取出后在锁外执行,避免阻塞其他线程。析构时先改stop_再,避免死锁。扩展点返回值支持 →。优先级任务 →。过载保护 → 限制tasks_大小,丢弃或阻塞提交。
2025-08-31 22:06:35
537
原创 单例模式的使用
C++中,单例模式是一种设计模式,确保一个类仅有一个实例存在整个程序的生命周期中,并且为这个实例提供一个全局访问点。比如大型软件系统中,有一个配置类,只需要创建一个实例就可以为整个系统提供服务。如果创建多个实例,不仅会浪费系统资源,还可能导致配置信息不一致。通过单例模式,我们可以保证配置类在整个程序中只有一个实例,所有需要获取或修改系统配置的地方都可以通过这个单例来操作。1. 可以节省内存资源;2. 方便管理全局资源。3.避免资源重复占用和冲突。多线程通过共享实例。
2025-08-18 09:00:44
452
原创 文献阅读:使用正则化子地图匹配的海底地形位姿图优化
候选子地图筛选如下图:常见的两点云匹配方法包括应用ICP(迭代最近点)算法。然而,与结构化环境中获得的点云不同,海底地形的点云平坦且无特征,并且在垂直方向上的变化相对较小。这导致传统的ICP性能容易陷入局部最小值,因为在x-y平面上的平坦特征比垂直变化更为显著。为了处理这个问题,采用了广义ICP(GICP),因为GICP基于局部表面的协方差最小化子地图之间的差异。然而,对于低特征子地图,这个问题仍然存在,特别是在对子地图进行下采样时。下采样(如体素过滤)是实现在线海底地形SLAM的必要步骤,因为它显著减
2024-07-01 10:05:56
436
1
原创 Day10代码随想录队列
此题目用两个栈模拟队列的操作,根据二者一个栈后进先出,另一个队列先进先出的特性,考虑两个栈来模拟队列的一系列的操作。主要定义两个栈,一个模拟输入的输入栈,另一个模拟输出的输出栈。我这里讲的都是C++ 语言中的情况, 使用其他语言的同学也要思考栈与队列的底层实现问题, 不要对数据结构的使用浅尝辄止,而要深挖其内部原理,才能夯实基础。从下图中可以看出,栈的内部结构,栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现。刚刚讲过栈的特性,对应的队列的情况是一样的。
2024-02-02 22:36:54
1976
原创 Day6代码随想录刷题● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 ● 总结
使用当你需要存储键值对,并且需要通过键来高效检索值。使用当你只需要存储一组唯一元素,不需要与之关联的值。这两个容器都提供了高效的插入、删除和查找操作(平均时间复杂度为 O(1)),但这取决于哈希函数的质量和冲突解决机制。由于它们是基于哈希表实现的,因此它们不保持元素的有序性。
2024-01-31 23:34:58
2540
原创 代码随想录Day6哈希表理论基础 242.有效的字母异位词349. 两个数组的交集202. 快乐数 1. 两数之和
当我们要使用集合来解决哈希问题的时候,优先使用unordered_set,因为它的查询和增删效率是最优的,如果需要集合是有序的,那么就用set,如果要求不仅有序还要有重复数据的话,那么就用multiset。那么再来看一下map ,在map 是一个key value 的数据结构,map中,对key是有限制,对value没有限制的,因为key的存储方式使用红黑树实现的。如果学生的数量大于哈希表的大小怎么办,此时就算哈希函数计算的再均匀,也避免不了会有几位学生的名字同时映射到哈希表 同一个索引下标的位置。
2024-01-29 21:26:51
2804
原创 Day4代码随想录● 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点面试题 02.07. 链表相交 142.环形链表II
注意需要画图进行操作,其次要链表的奇数和偶数这里主要是循环终止条件的问题,空指针操作异常以及边界的处理问题。这里我觉得代码随想录将代码讲解得非常详细:每一步分解的非常得简单易懂,所以我们只需要解决了边界条件之后得话同时多几个变量将几个链表打乱之后找不到得链表结点首先进行保存下来后面就好操作。
2024-01-27 22:45:14
1489
原创 Day3代码随想录:链表理论基础 203.移除链表元素 707.设计链表 206.反转链表
int val;1所以如果不定义构造函数使用默认构造函数的话,在初始化的时候就不能直接给变量赋值!
2024-01-26 22:04:13
1197
1
原创 Day2 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结
977. 有序数组的平方 - 力扣(LeetCode)将数组中元素先平方再进行排序。这样时间复杂度为nlogn。第二种解法:双指针解法:主要思想是因为数组中肯定包含的有负数,所以需要分别从数组的两头进行取值,由于是升序排列所以需要新数组的新下标要从数组的最后一个进行。209. 长度最小的子数组暴力解法:步思想是找到所有的子区间两个for循环解决问题。双指针即滑动窗口解决长度最小的子数组:核心思想:终止位置的选择和初始位置是怎么进行选择的才能达到选择到最小子数组的目的。这个题目多注意边界处理即
2024-01-26 00:08:00
1943
1
原创 无人系统自主决策复习前面部分
时间原因,还未推导完不过推导过程大同小异,注意一些常见的迭代类型即可。主要手动推一遍前面的考试要点内容,加强考试记忆。
2023-12-20 22:29:11
196
2
原创 无人系统自主决策复习—离散时间值迭代和策略迭代求解过程
主要记录课程重点的值迭代和离散迭代的迭代过程提示:以下是本篇文章正文内容,下面案例可供参考主要针对考试重点进行针对性复习提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2023-12-19 19:41:41
395
原创 逻辑回归梯度求解复习
本文主要记录对数几率回归模型的学习和推导过程。提示:以下是本篇文章正文内容,下面案例可供参考主要是进行一个逻辑回归梯度得一个求解。
2023-11-24 16:17:01
229
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅