自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】·C++缺陷和思考

本文深入探讨了C++语言在继承C语言特性时遗留的历史包袱和设计缺陷,从数组复制、类型说明符、指针偏移、隐式类型转换等基础语法,到移动语义、模板特化、构造析构函数调用虚函数等高级特性,全面剖析了C++中容易踩坑的语言陷阱。

2025-07-09 16:05:24 202

原创 C++ 20/23 模块的介绍和使用

C++20模块功能解析:现代化编译单元的革命 摘要:C++20引入的模块功能是继C++11后的重大革新,旨在解决传统头文件系统的固有缺陷。模块通过编译模块接口(CMI)机制,显著提升编译效率,避免头文件递归展开的开销。文章详细解析了模块的核心优势:1) 替代头文件机制,减少90%的编译时间;2) 消除宏污染问题;3) 提供精细的访问控制。通过GCC 15.1.0的实际案例,展示了标准库模块(std)、自定义模块及多模块协同的开发模式,包括单文件模块、分区模块等典型用法。

2025-07-09 13:41:38 308

原创 加锁与令牌桶算法-限流设计对比

摘要:令牌桶和加锁限流算法是两种常见的限流方案。令牌桶算法通过恒定速率补充令牌实现平滑限流,适合突发流量场景;加锁算法基于时间窗口计数器,严格限制请求数量,适合硬性QPS控制。令牌桶实现采用带缓冲通道存储令牌,后台协程定时补充;加锁实现通过互斥锁保护计数器,窗口超期时重置。令牌桶提供更平滑的流量控制,而加锁算法实现简单且能严格保证限流效果。选择方案需根据具体场景对流量平滑性和实现复杂度的要求。

2025-07-08 14:14:10 122

原创 基于Redis实现生产级消息队列

本文提出了一种基于Redis实现的生产级消息队列方案,采用多队列协同架构(主队列、处理中队列、死信队列)确保消息可靠性。通过LPUSH/RPOPLPUSH实现原子操作,配合处理标记和自动恢复机制防止消息丢失。关键技术包括:消息序列化、Lua脚本保证操作原子性、Pipeline批量处理、重试机制和死信队列处理。方案提供完善监控指标(入队/出队计数、处理耗时等),并支持批量消费模式。该设计在保证高可靠性的同时,实现了轻量级部署和高效处理,适用于需要Redis消息队列的生产环境。

2025-07-08 14:07:09 95

原创 golang的各种原生类型之间赋值是原子的吗

文章摘要: 通过汇编代码分析验证了Go语言中不同数据类型的赋值原子性。实验表明,map赋值是原子操作(单条MOV指令完成指针赋值),而slice需要3次内存写入(cap、len、pointer),interface和string各需2次内存写入。int、bool等基本类型确认是原子操作。作者未验证数组的原子性,但推测其非原子操作。该研究为Go并发编程中是否需要加锁提供了重要参考依据,特别是确认了map赋值操作的安全性。

2025-07-08 13:26:44 342

原创 【MySQL】DTS机制对触发器时间的影响

摘要:某案例中,DTS将源库A的表同步到目标库B的表B1,同时B1的触发器会将数据写入B2(含两个datetime字段)。由于DTS将会话时区设为UTC+0,导致触发器NOW()生成的时间比预期少8小时。问题根源在于datetime类型在不同时区下值会变化,而timestamp类型则会自动转换。解决方案:1)在触发器内临时设置时区为+8;2)将字段类型改为timestamp。测试验证了timestamp类型在不同时区下能正确转换。

2025-07-06 14:55:25 262

原创 Linux·踩内存问题定位利器

2、指定的回调函数的调用时机:对X86,如果监视的是数据地址,则是在访问该数据的指令执行完成后,通过exception触发回调,如果监视的是指令地址,则是在该指令被执行前通过exception触发回调。在新的内核版本中引入了一个新工具hardware breakpoint,其能够监视对指定的地址的特定类型(读/写)的数据访问,有利于该类问题的定位;所以对于随机的内存踩踏(频繁的申请、使用、释放)是很难处理的,比较适合固定的地址踩踏。1、获取per_cpu变量的地址。

2025-03-18 14:58:53 432 1

原创 Linux·数据库INSERT优化

,写入磁盘本身就是一个耗时的操作,每次插入一点数据就同步一点数据,对于磁盘而言更是雪上加霜。到这里其实我们想到的第一个优化点,应该就是对于要插入的数据,一次性同步到磁盘,这样可以减少多次同步磁盘带来的时间消耗。插入的话时间消耗是很大的,具体而言单次插入600+时,就需要十几秒,显然这个时间是用户无法忍受的,那么有没有什么办法优化数据插入时间呢?在业务中,我们经常会要对数据进行存储,对于少量数据插入时,我们可以直接使用。插入数据,但是当我们需要插入的数据比较多时,使用。具体的,可以使用事务。

2025-03-04 17:01:38 485

原创 Linux·IP报文重组

其中rhashtable为分片队列(inet_frag_queue)所在的hash表,IP分片包在内核中根据IP报头的4个字段计算得到一个hash值(key值),每个hash值对应一个分片队列,在实现分片包重组功能时,IP层需要先缓存收到的所有分片包,等待同一个IP报文的所有分片包都到达后,把它们重组成一个大包再提交给L4(TCP/UDP... ...)协议。同时,处理与分片包相关的数据结构,譬如更新当前分片包占用的内存(frag_mem_limit),停止与分片包相关的定时器等。

2025-02-22 15:11:49 534

原创 Linux·spin_lock的使用

在使用spin_lock_irq和spin_unlock_irq的情况下,完全可以用spin_lock_irqsave和spin_unlock_irqrestore取代,那具体应该使用哪一个也需要依情况而定,如果可以确信在对共享资源访问前中断是使能的,那么使用spin_lock_irq更好一些。喔,我们在normal级别下获得了一个spinlock,正当我们想做什么的时候,我们被interrupt打断了,CPU转而执行interrupt level的代码,它也想获得这个lock,于是“死锁”发生了!

2025-02-21 17:36:15 1109

原创 小问题·统计含中文字符串的有效字符个数

统计含中文字符串的有效字符个数

2023-08-25 10:11:13 636

原创 LeetCode·每日一题·722. 删除注释·模拟

模拟

2023-08-03 09:43:45 758

原创 LeetCode·每日一题·822. 翻转卡片游戏·哈希

哈希

2023-08-02 09:46:19 794 1

原创 LeetCode·每日一题·2681. 英雄的力量·脑筋急转弯

脑筋急转弯

2023-08-01 10:31:12 675

原创 LeetCode·每日一题·2500. 删除每行中的最大值·模拟

模拟

2023-07-27 09:39:14 547

原创 LeetCode·每日一题·2208. 将数组和减半的最少操作次数·优先队列

优先队列

2023-07-25 10:44:10 444

原创 LeetCode·每日一题·771. 宝石与石头·哈希

哈希

2023-07-24 09:17:27 315

原创 LeetCode·每日一题·918. 环形子数组的最大和·模拟

模拟

2023-07-20 13:54:39 290

原创 LeetCode·每日一题·874. 模拟行走机器人·哈希

哈希

2023-07-19 14:20:14 642

原创 Linux·从 URL 输入到页面展现到底发生什么?

从 URL 输入到页面展现到底发生什么?

2023-07-18 17:47:10 1291

原创 LeetCode·每日一题·1851. 包含每个查询的最小区间·优先队列(小顶堆)

优先队列

2023-07-18 17:14:01 986 1

原创 Linux·gdb调试命令和使用方法

gdb调试

2023-07-17 17:36:42 684

原创 LeetCode·每日一题·415. 字符串相加·模拟

模拟

2023-07-17 10:56:21 393

原创 LeetCode·每日一题·931. 下降路径最小和·记忆化搜索

记忆化搜索

2023-07-13 10:08:38 418

原创 LeetCode·每日一题·2544. 交替数字和·模拟

模拟

2023-07-12 17:36:09 757

原创 LeetCode·每日一题·2178. 拆分成最多数目的正偶数之和·贪心

贪心

2023-07-06 11:55:23 586

原创 Linux·图解Linux网络包接收过程

图解Linux网络包接收过程

2023-07-06 10:37:38 1078

原创 Linux·图解网络包发送过程

Linux网络包发送过程

2023-07-06 10:29:30 931 2

原创 小问题·select 一直返回 0 的几种原因

select使用的注意细节

2023-07-05 15:58:27 4323

原创 LeetCode·每日一题·2679. 矩阵中的和·排序

排序

2023-07-04 12:44:19 646

原创 LeetCode·每日一题·445. 两数相加 II·模拟

模拟

2023-07-03 11:32:31 425

原创 LeetCode·每日一题·2490. 回环句·模拟

模拟

2023-06-30 09:16:12 536

原创 【C语言】十大经典排序算法-动图演示

十大排序

2023-06-29 11:55:05 989 2

原创 LeetCode·每日一题·1186. 删除一次得到子数组最大和·动态规划

动态规划

2023-06-27 10:08:10 437

原创 LeetCode·每日一题·2485. 找出中枢整数·前缀和

前缀和

2023-06-26 11:04:06 431

原创 LeetCode·1262. 可被三整除的最大和·贪心

贪心

2023-06-19 14:24:11 661

原创 LeetCode·每日一题·1177. 构建回文串检测·前缀和

前缀和

2023-06-15 11:37:19 1171

原创 Linux·Binder机制原理

Binder机制 原理

2023-06-09 17:58:51 2477

原创 【C语言】算法学习·Dijkstra算法详解

Dijkstra算法详解

2023-06-09 10:46:06 4405 1

原创 LeetCode·每日一题·2460. 对数组执行操作·模拟

模拟

2023-06-05 09:14:33 202

gec6818- 车载娱乐系统-满分毕设

车载娱乐系统 介绍 本设计以现代手持设备娱乐多媒体终端为方向,采用基于ARM Cortex 一M3内核的GEC6818开发板和7英寸彩色液晶显示的触摸屏,完成对各种图片格式的解码显示且可以通过触摸显示屏切换其中的图像,扩充视频播放与音频输出的功能、无线接收传输文件、密码匹配解锁界面等功能,最终得到一个比较稳定的系统. 功能实现 1.实现触摸屏上图片显示,具有相册的存储功能,切换图片显示点击屏幕左右两侧。 2.实现视频的播放,可以触摸屏幕暂停和继续视频的播放,并且可以切换列表中上一个或者下一个视频。 3.可以打开音频文件进行音频的播放,并且可以切换上一首或者下一首曲目,插入耳机进行收听。 4.实现pc端与6818之间的无线wifi的传输电子文件的功能。 5.给此次开机界面添加密码锁(拓展:进入界面后可修改任何六位数密码)。 6. 添加监控功能,利用摄像头实现实时画面传输,实现监控的目的 7. 在监控界面可以实现抓拍,回显的功能 8. 添加小游戏功能 9. 添加车库管理系统,可利用rifd模块模拟实现车库的管理

2025-07-04

gec6818- 基于Arm和Qt的智能车载系统-满分毕设

毕业设计项目,基于GEC6818底板实现,做了一个简易的车载系统,实现了天气预报、音乐播放器、视频播放器、倒车雷达、行车记录仪、多语言切换等功能

2025-07-04

gec6818-智能家居环境监控系统-开盒即用

此项目为 大学毕业设计 硬件: 开发板: GEC6818 - Cortex-A35 - armV8 传感器: 光照: 普通光敏电阻传感器 - 4 针制 AO 口 接开发板的 GPIO 5 口 温度和湿度: DHT11 DAT 口 接开发板的 TX 1 口 可燃气体: MQ-2 DO 口 接开发板的 RX 2 口 软件: 服务端 - 软件:Qt5 语言:C++和 QML 客户端 - 软件:Visual Studio Code 语言:C 语言 开发板输出显示 - 软件:SecureCRT 服务端用 Qt5 直接跑就可以了 客户端 中需要先安装传感器的对应驱动,其中 LED 和蜂鸣器是开发板自带的,只需要安装其他的即可 客户端图片: - 由于对于图片的解析本程序使用的是 bmp 解析,所以只能使用 bmp 图片进行显示,其他图片需要换其他格式解析方法 1.bmp - 用户登录界面 2.bmp - 数据显示界面 3.bmp - 设备控制界面 4.bmp 5.bmp 设备控制开关图片 6.bmp 7.bmp 网络连接显示图片 8.bmp 9.bmp 智能调解显示图片 10.bmp 11.bmp 智能调解参数弹窗 12.bmp 13.bmp 网络连接参数弹窗 14.bmp 15.bmp 网络连接提示弹窗 16.bmp - 关于我们界面

2025-07-04

gec6818驱动模块源码+ko

内部包含蜂鸣器驱动、温湿度传感器驱动、烟雾传感器驱动、ADC驱动、LED驱动,有源码实现和可以直接使用的ko无需编译

2025-07-04

http服务器框架设计和实现,可写入简历

配合http相关文档一起使用,可以写入简历项目

2025-07-04

gec6818-电子相册,满分期末考核,可直接使用

gec6818-电子相册,满分期末考核,可直接使用

2025-07-04

qt5项目-打地鼠-小白可用

qt5项目-打地鼠-小白可用

2025-07-04

gec6818-2048小游戏,满分作业

无需修改,直接编译安装可用,小白也可以上手

2025-07-04

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

TA关注的人

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