自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IO多路复用-select/poll/epoll

IO多路复用​I/O 多路复用就是一种让单个线程能够同时监视多个网络连接(如 Socket)读写状态的机制。

2026-01-11 21:54:32 664

原创 MySQL C API 中预处理语句(Prepared Statement)相关的核心函数/结构体

→ 初始化预处理句柄→ 预处理SQL语句(含占位符)→ 初始化参数绑定结构体→ 绑定参数与占位符5.(可选)→ 分块发送超长参数数据→ 执行SQL语句7.(可选)获取执行结果(查询语句需额外处理结果集)→ 关闭句柄释放资源这些接口是MySQL C API预处理语句的核心,实现了“初始化-预处理-绑定-执行-释放”的完整流程;核心优势是高效(重复执行无需重新编译)、安全(防止SQL注入)、支持超长数据;MYSQL_BIND绑定参数与占位符,补充超长数据,必须调用避免资源泄漏。

2025-12-20 20:31:45 553

原创 Fread 和 Fwrite 函数参数详解

数据地址→单个块大小→块数量→文件指针;参数1区分读写方向(fwrite是数据源地址,fread是数据接收地址);参数2和3共同决定总读写字节数(总字节数=size×count);参数4必须是fopen打开的合法二进制模式文件指针。

2025-12-20 19:30:46 283

原创 线程池作用

1.避免线程太多,使得内存耗尽。2.避免创建于销毁线程的代价。

2025-12-16 21:04:30 67

原创 自旋锁、互斥锁、原子操作

CAS 是一种**硬件级别的原子操作**,其逻辑可以概括为: 「我认为内存地址 `ptr` 现在的值是 `old_val`,如果是,就把它改成 `new_val`;如果不是(说明被其他线程/CPU核修改过),就什么都不做」。整个“比较 + 交换”的过程**不可被中断**,硬件(CPU)会保证操作的原子性,不会出现“比较成功但交换前被打断”的情况。CAS 是 “无锁同步” 的基石,核心是硬件保证的原子比较 - 交换,通过 “重试机制” 解决竞争问题;其最大坑点是 ABA 问题,需通过版本号规避;

2025-12-16 20:53:17 492

原创 pthread_mutex_init、pthread_mutex_lock、pthread_mutex_unlock函数理解

释放当前线程持有的互斥锁,将锁状态从 “锁定” 改为 “未锁定”。此时,所有等待该锁的线程中会有一个被唤醒并获取锁(具体哪个线程由系统调度决定)。如果锁当前是 “未锁定” 状态,当前线程会立即获得锁(锁变为 “锁定” 状态);如果锁已被其他线程锁定,当前线程会。// 定义一个互斥锁变量 // 初始化互斥锁(默认属性)创建并初始化一个互斥锁(mutex),为后续的加锁 / 解锁操作做准备。这样就能保证同一时间只有一个人(线程)能使用隔间(共享资源)。// 临界区:操作共享资源(如全局变量、链表等)

2025-10-17 21:06:18 1437

原创 对 select/poll/epll和io_uring的理解

1你没法一直站在楼下等,于是你每隔5分钟就跑到门卫室,问大爷:“大爷,有我的快递吗?:助理(内核)可以直接把数据放到你指定的最终位置,省去了中间倒手的步骤,效率更高。:这个“搬快递”的过程(系统调用)本身是有开销的。:从“下指令”到“拿到结果”,你完全不需要插手中间过程。你只关心开始和结束。:当大爷告诉你“快递到了”(一个socket可读了),你。这个系统调用,把数据从内核缓冲区读到你的程序内存)。了,让应用程序和内核的协作达到了前所未有的高效程度。:你是一个住户,在等一个重要的快递。:你是一个公司老板。

2025-10-02 11:58:56 639

原创 ucontext的理解

ucontext是Unix/Linux提供的用户级上下文切换机制,允许在进程内保存和恢复执行现场(寄存器、栈指针等)。核心结构体ucontext_t包含上下文链接、信号屏蔽、栈信息和寄存器状态。主要函数包括:getcontext保存当前状态,setcontext恢复状态,makecontext修改上下文执行新函数,swapcontext保存当前并切换到另一上下文。通过分配栈空间和设置返回链接,可实现轻量级协程切换。示例展示了如何通过swapcontext在main和func之间跳转执行。ucontext适合

2025-09-28 15:31:04 1405

原创 为什么出现大量的time_wait、close_wait,什么原因

状态是 TCP 连接关闭过程中的一个正常状态,表示被动关闭连接的一方已经收到对方的关闭请求,但本端尚未关闭连接。例如,HTTP 服务器在处理完请求后关闭连接,或者客户端频繁地发起和关闭连接。:如果服务器或客户端频繁地主动关闭 TCP 连接,就会产生大量的。状态的连接,通常是因为应用程序未正确关闭连接或存在逻辑问题。

2025-09-13 17:53:53 182

空空如也

空空如也

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

TA关注的人

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