自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lock-Free stack 数据结构

这个 Lock-Free stack 并不是一个漂亮的 Lock-Free 数据结构,它存在诸多限制如需要环境支持内存回收机制(如引用计数),同时还存在 ABA 问题,在内存资源重用时有又概率出现,但是它引出了 Lock-Free 的核心 CAS 机制,引出了需要解决内存回收和 ABA 问题,是一个入门 Lock-Free 的优秀学习案例。后续的学习的中我们会逐步解决这些问题。

2025-03-16 13:41:29 1032 1

原创 Linux 的 printk_ringbuffer 模块接口分析

***/只写入 text_buf_size,用于后续的预定接口。/***/写入 info, text_buf, text_buf_size,后续调用读接口,会将信息拷贝到这些结构中。上文我们分析了 printk_rinbuffer 接口设计,它和我们平常学习的标准队列不同,它的接口完全借鉴了现实生活中的餐厅预定位置,而我们标准队列通常只会实现一个写入和读出接口,写入的数据时会在实现内部进行拷贝,而 printk_rinbuffer 这样的设计实际是考量了使用者的使用方式。

2025-02-16 21:20:41 656

原创 通过 SWD + openocd + gdb 调试树莓派5B的 Linux kernel

由于树莓派各种生态相对丰富,因此购买了树莓派5B用于学习 Linux 内核源代码,由于 Linux 内核源代码相当庞大,而且有些模块不易理解,调用栈非常深,学习起来十分困难,因此想到用硬件调试器以单步调试学习,本文章用于给大家分享调试方法。

2024-12-31 00:14:18 2305 2

原创 循环队列缓存数据结构

因此我参考 Linux 的源代码的相关思路编写了一个这种数据结构,仅仅提供一个思路和记录。

2024-12-22 17:24:04 626

原创 通用数据结构设计--单向链表(1)

通用单向链表设计我们的目标是设计一个完美的通用单向链表,什么叫完美?我也说不上来,但是我们可以去做,像写小说一样,我们想写出优秀的小说,必须需要看大量的其他优秀的小说,这是第一步,吸收它的优点,这是第二步,吸收后灵活使用在自己的小说里,这是第三步。有些人对代码没有更高的追求,往往在看懂其他人的代码,并不会进行深入的第二步和第三步,这样看代码只会学到一些代码中亮眼的一些设计,也就是学到一些皮毛,而我们数据结构的设计会学习其他人的设计,提取出精华,分析出他的设计思维,再将大量的精华写入到我们的设计中,即是表

2021-06-19 17:06:52 227

原创 在编写C语言程序时何时需要进行函数参数合法性检查?(1)

引言我们在很多情况下需要用到assert,如当我们需要使用它去进行参数合法监测等,我们使用assert语句去实现,但是当软件发布时,因为性能问题等,会讲assert去掉,所有的合法检测都失效了,我们又该如何监测参数的合法性呢?解决问题我们我们平时编写的程序...

2021-06-15 12:04:39 2682 1

原创 在编写应用程序时的错误处理

2021-06-04 09:47:40 110

空空如也

空空如也

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

TA关注的人

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