logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核同步互斥机制:自旋锁、互斥锁、信号量、原子操作和completion

本文介绍了Linux内核中几种同步互斥机制:锁、信号量和原子操作等。自旋锁适用于短临界区,持锁期间禁止睡眠,常见变体包括spin_lock_irqsave(最常用);互斥锁允许睡眠,适合进程上下文中的耗时操作;信号量通过计数器实现资源控制,允许多个路径同时访问。关键区别在于:自旋锁忙等待,适用于不能睡眠的场景;互斥锁会睡眠,仅限进程上下文;信号量支持多路并发访问。开发者需根据场景选择合适机制,遵循

#linux#c语言#数据结构 +2
刷题记录:嵌入式的力扣刷题技巧与顺序(三)排序

本文总结了四种基础排序算法:冒泡排序(相邻元素比较交换)、选择排序(每次选最小值)、快速排序(选基准值分区递归)和归并排序(分治合并),每种算法均附有详细代码实现和过程示例。重点分析了各算法的核心思想、实现步骤、时间复杂度和稳定性,其中快速排序和归并排序采用分治策略,时间复杂度最优(O(nlogn))。还介绍了快速选择算法,用于高效查找第K大元素。

#算法#数据结构#leetcode +4
刷题记录:嵌入式的力扣刷题顺序与技巧(二)数组

本文主要介绍了数组操作中的双指针技巧和二分查找算法。双指针部分详细讲解了两种模式:对撞指针(左右双指针)适用于有序数组的两数之和、盛水容器等问题;快慢指针(同向双指针)用于原地修改数组,如删除重复项、移除元素等。二分查找部分强调有序数组的前提条件,给出了标准实现模板和区间处理要点。文章还总结了LeetCode常见函数签名模式,特别是C语言处理返回数组的方法,包括malloc使用和returnSiz

#leetcode#算法#c语言 +3
刷题记录:嵌入式的力扣刷题顺序与技巧(一)链表

本文总结了链表操作的核心技巧和力扣题型。主要内容包括:1. 基础操作:遍历、创建节点、插入(头插/尾插)、删除节点等;2. 关键技巧:虚拟头节点简化处理、三指针反转链表、快慢指针判断环和找中点;3. 典型题型:反转链表、合并链表、环形链表、删除倒数第N个节点等;4. 指针操作注意事项:避免断链、内存管理要点等。文章系统梳理了链表问题的解决思路,重点讲解了快慢指针、虚拟头节点等核心技巧的应用场景和实

#leetcode#链表#算法 +4
到底了