logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

深入 Linux 内核:进程四大状态与 task_struct 双向链表底层实现

讲完双链表,咱们正式拆解四大进程状态。首先是最基础的运行态(R),很多粉丝都有一个误区:以为R态就是“正在CPU上执行”,其实不是——Linux里的R态,是“就绪态+执行态”的统一体。// 进程状态定义(简化版,内核源码:include/linux/sched.h)#define TASK_RUNNING 0 // 运行态(就绪/执行)#define TASK_INTERRUPTIBLE 1 //

文章图片
#linux#运维#服务器 +2
搞懂 Linux 驱动开发必看:DMA 技术

在计算机的世界里,数据传输就像是一场繁忙的物资搬运工作。在早期,CPU 就如同一位勤劳的 “搬砖工”,亲力亲为地参与每一次数据的搬运。当外设(如网卡、磁盘等)需要与内存进行数据交换时,CPU 需要一条指令接着一条指令地将数据从内存读取到寄存器,再从寄存器写入到外设,反之亦然。这种传统的编程 I/O(PIO)方式,虽然能够完成数据传输任务,但效率极其低下。

文章图片
#c++#linux#驱动开发
掌握 Linux 内核调度:从原理到实现(进程篇)

说白了,进程调度就是内核里的"包工头"。你想想啊,咱们写代码的每天在各个需求之间反复横跳,内核不也一样吗?它面对的是成百上千个进程排队等着干活,可 CPU 核心就那么几个。调度器得决定谁先上、谁后上,像个和事佬一样,让每个进程都觉得自己没被亏待。以前的老内核(2.4 时代)比较野蛮,直接给每个进程分时间片。你 10 毫秒,我 20 毫秒,分完拉倒。结果呢?高优先级的进程如果是个“死循环”,低优先级

文章图片
#java#开发语言
吃透 Linux 容器底层实现,才算真正摸透 Linux 内核核心机制

从技术原理来讲的话,容器是基于 Linux 内核的特性,实现了轻量级的进程隔离。通过巧妙运用命名空间(Namespaces)和控制组(Cgroups),容器内的进程拥有自己独立的资源视图,彼此之间互不干扰,就像在不同的小世界里运行。这不仅保障了应用的稳定运行,启动速度可达到秒级,资源利用率大幅提高,单机可以轻松承载数千个容器实例 ,这是传统部署方式难以企及的。

文章图片
#linux#文件系统#容器
‌C++内存对齐实战:揭秘结构体大小的计算逻辑‌

内存对齐是计算机底层硬件高效、安全访问数据的基石。深入理解其原理(硬件要求、性能优势)和规则(有效对齐值 n、成员放置、整体补齐),对于编写高性能、可移植且内存高效的 C/C++ 代码至关重要。可以通过 alignas (C++11)、#pragma pack、__attribute__ 等工具干预对齐,但必须清醒认识其带来的空间开销和潜在的 ABI 兼容性风险,尤其是在跨模块或跨编译器协作时。优

文章图片
#c++#linux
C++造轮子:手搓 List 容器

/ 普通迭代器// 常迭代器代码解析:begin():返回指向第一个实际数据节点的迭代器(即头节点的下一个节点)end():返回指向哨兵节点(头节点)的迭代器,这就是遍历的终点!为什么end()是头节点?因为我们的链表是双向循环的,遍历完最后一个节点后,它的next就是头节点!const重载:为const list对象提供只读访问能力核心思想:利用哨兵节点作为统一的"终点标志",让空链表和非空链表

文章图片
#c++#list#linux +1
C++析构顺序:局部对象与继承结构的深度解析

自动管理对象(局部、静态、成员)遵循 “构造反序” 的默认规则,无需手动干预;手动管理对象(堆对象)需按资源依赖控制delete顺序,智能指针是最佳实践;复杂场景(继承、容器)需关注虚析构、声明顺序等细节,避免依赖冲突。咱们在写代码时,无需死记所有规则,只需抓住 “资源安全释放” 的核心目标:确保被依赖的资源后释放,优先使用自动管理方式(局部对象、智能指针),就能避免 90% 以上的析构相关问题。

文章图片
#c++#算法#数据结构与算法 +1
从 C++11 到 C++23:枚举的原理升级与实践

/ 溢出:256超出uint8_t的潜在值域[0,255]// GCC 12:按模截断(256 mod 256 = 0,结果为SafeEnum(0))// Clang 15:直接赋值(结果为SafeEnum(256),但sizeof仅1字节,实际存储0)// MSVC 2022:断言失败(Debug模式)或随机值(Release模式)规避方案// 计算潜在值域边界0 :// 编译期检查(若val为

文章图片
#c++23#c++
OpenCV--人脸识别入门

本次用的数据集是opencv给出的教程里面的第一个数据集:​​The AT&T Facedatabase​​,又称为ORL人脸数据库,40个人,每人10张照片。照片在不同时间、不同光照、不同表情(睁眼闭眼、笑或者不笑)、不同人脸细节(戴眼镜或者不戴眼镜)下采集。所有的图像都在一个黑暗均匀的背景下采集的,正面竖直人脸(有些有轻微旋转)。

文章图片
#opencv#qt
Qt QTableView 实现数据改变表格自动刷新

在代码中,我们首先创建一个QStandardItemModel数据模型,并设置表格的行数和列数,同时设置表头和填充数据。然后将数据模型绑定到QTableView中,并实现数据变化自动刷新的功能。最后显示QWidget窗口。在实际开发中,我们可以根据实际需求对表格进行调整和优化,比如设置表格样式、添加双击编辑功能等。

文章图片
#qt#开发语言
    共 96 条
  • 1
  • 2
  • 3
  • 10
  • 请选择