自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《手撕红黑树:一个通用的 C 语言实现》

本文将带着你手撕一个完整的、泛型的红黑树 C 语言实现。代码支持任意类型的 key 和 value,并提供了初始化、销毁、增删改查等标准接口。我们不仅会贴出核心代码,还会详细分析旋转、插入修复、删除修复等复杂逻辑。

2026-05-22 16:17:23 302

原创 《手写一个C语言线程池:从零实现到原理剖析》

本文将通过一个完整的C语言实现,带你深入理解线程池的工作原理,包括任务队列、工作者线程、同步机制等核心模块。当任务队列为空且未收到终止信号时,为了让其他线程可以继续取任务,需调用条件变量(cond)进入等待,释放锁,提高并发度,任务执行过程中不占用锁,避免了长时间阻塞其他线程。添加任务的逻辑就是将任务添加到线程池任务队列的头部,由于使用了条件变量cond,在没有任务时,工作线程会阻塞等待其它线程的唤醒,所以需要调用pthread_cond_signal函数唤醒一个工作线程,插入前也需加锁保证线程安全。

2026-03-11 16:53:28 344

原创 多线程并发锁的方案

本文介绍了C语言中三种主要的线程同步机制:1) 互斥锁(pthread_mutex),适用于临界区执行时间较长的场景,线程获取不到锁时会休眠;2) 自旋锁(pthread_spinlock),适用于临界区执行极快的场景,线程会循环检查锁状态;3) 原子指令(如CAS),提供硬件级别的原子操作。此外还详细讲解了条件变量与互斥锁的配合使用模式,通过pthread_cond_wait/pthread_cond_signal实现高效线程通信,并给出了生产者-消费者问题的标准实现范式。每种机制都配有相应的初始化、加锁

2026-03-11 15:06:23 538

通用rbtree C源码

通用rbtree C源码

2026-05-22

空空如也

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

TA关注的人

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