自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 从 TCP 90μs 到 SHM 28μs:我的 RPC 框架零拷贝优化历程

在做这次 TCP → SHM 的迁移之前,我对进程间通信的理解就是"socket 一发一收"。做完之后才意识到——即使是本机 loopback,走 TCP 也要穿过整条内核网络栈,中间每一步拷贝和系统调用都是成本,SHM 本质上就是把"中间人"全去了,两个进程直接在同一块内存上干活。严格来说,SHM 数据路径上从用户 Buffer memcpy 到 ring buffer 这一步仍然是 CPU 拷贝,不算"零拷贝"。

2026-07-24 20:16:52 587

原创 MIT 6.824 lab3D

3D日志压缩

2026-05-12 16:06:07 387

原创 MIT 6.824 lab3B/C

lab3B/C

2026-04-26 23:31:08 458

原创 MIT 6.824-lab3A(实现思路)

lab3A

2026-03-16 20:46:50 1213

原创 通讯录完善版本(详细讲解+源码)

经过长达六个月的时间,年迈的博主终于想起来,通讯录还需要完善,那么这篇文章就对我们的初代通讯录(初代通讯录(详细讲解+代码)_化学系通讯录最简单三个步骤-CSDN博客)进行完善,增加动态更新内存的内容,以及建立一个文件,将通讯录的信息保存下来;

2025-04-25 20:44:43 1575 57

原创 简单线段树的讲解(一点点的心得体会)

关于线段树的讲解

2025-04-19 20:16:13 1096 13

原创 从锁到IO,深入理解系统底层的完整逻辑链

一次对互斥锁、自旋锁、select/poll/epoll、内存管理的完整拷打与重构。

2026-08-25 15:21:29 302

原创 深入理解自旋锁与互斥锁:原理、区别与应用场景

互斥锁是一种阻塞型锁,当一个线程尝试获取已被其他线程持有的互斥锁时,该线程会被操作系统挂起,进入睡眠状态,直到锁被释放后才被唤醒。自旋锁是一种非阻塞型锁,当一个线程尝试获取已被其他线程持有的自旋锁时,该线程会在一个循环中不断尝试获取锁,而不是被挂起。自旋锁和互斥锁自旋锁:适合短时间等待、多核环境、实时性要求高的场景互斥锁:适合长时间等待、单核环境、需要节省CPU的场景在实际开发中,应该根据性能测试结果和具体业务需求来选择合适的同步机制。现代编程语言和框架通常提供了更高级的抽象,如读写锁条件变量信号量。

2026-08-23 16:08:58 320

原创 二叉树展开为链表 --寻找前驱节点

*** };*/public:if (cur) {

2026-08-17 10:05:55 173

原创 删除链表的倒数第 N 个结点

public:}else{

2026-08-09 17:26:35 221

原创 K 个一组翻转链表

public:while (end!= ne) {ne = cur;cur = tmp;cur = prev;i < k;++i) {if (!cur)prev = end;

2026-08-09 17:24:32 148

原创 深入理解 std::list::splice:接口详解与实战示例

是操作链表时一把高效的"瑞士军刀"。清晰区分splice三种用法的适用场景。在需要合并、分割或在链表间移动元素时,熟练地选择正确的重载。理解其常数时间或线性时间的复杂度特性,并能在实际项目中加以应用,提升程序效率。下次当你面对需要操作链表节点指针的场景时,不妨先想想是否可以用splice来优雅地解决。

2026-08-08 19:38:54 332

原创 旋转图像-

public:i<n/2;++i){j<n-i-1;++j){public:i<n;++i){j<m;++j){i<n;++i)

2026-08-07 16:35:18 174

原创 转轮数组-

public:++l;--r;k%=n;

2026-08-05 09:51:40 201

原创 leetcode合并区间

public:i<n;++i){}else{return res;

2026-08-05 09:51:09 229

原创 最长有效括号

dp:class Solution {public: int longestValidParentheses(string s) { int n = s.size(); vector<int> dp(n + 1, 0); int maxcnt = 0; for (int i = 1; i < n; ++i) { if (s[i] == ')') { if (s[i-1] == '(')

2026-07-26 17:18:00 180

原创 下一个排列

public:if(l>=0){

2026-07-26 12:02:58 216

原创 最长回文子串

public:if (n < 2)return s;gbry = len;start = l;--l;++r;i < n;++i) {pick(i,i);

2026-07-23 10:46:46 244

原创 在排序数组中查找元素的第一个和最后一个位置

public:elser = mid-1;left = l;elsel = mid+1;right = r;

2026-04-04 11:20:22 56

原创 最小覆盖子串

public:mp1[e]++;start = l;++l;++r;

2026-04-02 23:01:12 83

原创 反转字符串中的单词

public:string res;l=r;= ' ')--l;res += ' ';r = l;return res;

2026-04-01 21:09:17 231

原创 交换字符串中的元素

public:string str;int x, y;return tmp;i < n;++i) {s=tmp;

2026-04-01 21:08:23 145

原创 连接所有点的最小费用

/n 个点需要 n-1 条边构成树。

2026-04-01 21:07:51 417

原创 连接所有 点的最小值

/n 个点需要 n-1 条边构成树。

2026-04-01 09:37:40 52

原创 kruskal

int n,m;int x,y,z;}a[M];i<=m;++i){cnt++;cin>>n>>m;i<=n;i<=m;++i){kruskal();return 0;

2026-03-31 17:21:05 39

原创 等式方程的可满足性

/如果father[x]不是源头,继续往前找。//y的源头等于x的源头。

2026-03-30 17:06:33 53

原创 冗余连接-

/如果father[x]不是源头,继续往前找。//y的源头等于x的源头。

2026-03-30 16:32:38 51

原创 省份的数量

/如果father[x]不是源头,继续往前找。//y的源头等于x的源头。

2026-03-30 16:30:36 31

原创 网络延迟时间

public:pq;pq.pop();if (st[u])continue;if (!i < n;++i) {return -1;return res;

2026-03-29 22:40:03 194

原创 拓扑排序-

public:++i)q.push(i);q.pop();--ind[v];return res;

2026-03-29 20:54:00 48

原创 大臣的旅费

/ 经过 cur 的最长路径 = 最长的两条子路径之和。// 只有一条子路径,该路径本身就是经过 cur 的路径。0:y[sz-1];// 返回从 cur 向下能到达的最远距离。//叶子节点且不是根,返回0。// 存放从 cur 向下的所有路径长度。//往下递归寻求最大路径和。

2026-03-29 20:25:18 389

原创 单源最短路径

int n,m,s;i<=n;dist[s]=0;pq.pop();st[u]=true;if(!i<m;++i){int u,v,w;dijkstra();i<=n;return 0;

2026-03-28 22:37:05 224

原创 打家劫舍3

/如果不选,取子节点选与不选时得到的最大值。//如果选这个节点,那么他的子节点都不能选。

2026-03-28 20:28:04 411

原创 二叉树的直径

public:if(!int tmp=0;int ret=0;return ret;

2026-03-28 20:27:07 173

原创 岛屿数量--

public:k<4;++k){int cnt=0;i<n;++i){j<m;++j){cnt++;return cnt;

2026-03-28 20:26:07 355

原创 分割等和子集

/枚举从0-n-1的数的组合能不能和为target dp[i][j]表示前i+1个元素能不能组成和为j。if (num > j) {//如果这个数比枚举到的数大,拿不了。if (sum % 2 == 1)//如果总和是奇数,不行。dp[i][0]=1;

2026-03-23 20:30:24 168 1

原创 最小路径和

public:i < n;++i) {// }i < m;++i) {i < n;++i) {j < m;++j) {

2026-03-23 19:23:41 261

原创 全排列--

public:return;i < end;++i) {if (st[i])continue;return res;

2026-03-22 22:15:06 35

原创 单词搜索-

public:k < 4;++k) {continue;if (i < n;++i) {j < m;++j) {

2026-03-22 22:12:55 186

原创 组合总和-

public:return;return;i < efs;++i) {continue;path);return res;

2026-03-22 22:11:25 45

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除