- 博客(132)
- 收藏
- 关注
原创 【Linux】linux进程 vs 线程
特性进程线程基本定义资源分配单位CPU调度单位内存空间独立地址空间共享地址空间创建开销大小通信成本高(需要IPC)低(共享内存)隔离性强(一个崩溃不影响其他)弱(一个崩溃整个进程退出)数据共享困难(需要特殊机制)简单(直接访问)适用场景需要强隔离、安全性的场景需要高效通信、资源共享的场景。
2025-08-31 17:14:38
359
原创 【回调函数】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档在编程中,回调函数(Callback Function)是一种常见的设计模式,它允许在某个操作完成时执行一个函数。这种模式在异步编程、事件驱动编程和中断处理中非常常见。:回调函数通常通过函数指针实现,这使得你可以传递任何符合特定签名(signature)的函数。:你可以在运行时指定回调函数,这提供了高度的灵活性。:回调函数可以减少代码之间的耦合,使得代码更加模块化。
2025-08-16 16:31:48
281
原创 【Linux进程池项目】——代码干货解析
std::cout << "我是一个download任务" << std::endl;std::cout << "我是一个MySql任务" << std::endl;std::cout << "我是一个数据刷新同步任务" << std::endl;void Log()std::cout << "我是一个日志保存任务" << std::endl;
2025-08-14 17:00:00
840
原创 【C++】迭代器失效问题
摘要:C++中迭代器失效是指容器结构变化导致原有迭代器无效的现象。常见于vector的扩容/插入/删除操作,会导致未定义行为。避免方法包括正确使用erase(返回新迭代器)、重新获取插入后的迭代器、使用标准算法替代循环。不同容器失效情况不同:vector插入/删除影响较大,list/map仅影响被删元素,unordered容器在rehash时失效。理解迭代器失效机制对编写安全的STL代码至关重要。
2025-08-12 21:31:39
574
原创 【Linux】init和bash的区别
init和bash是Linux系统中的两个核心组件,它们各自承担着不同的职责。理解它们的区别和作用,对于Linux用户来说至关重要。init作为系统的守护者,确保了系统的稳定运行;而bash作为命令行的瑞士军刀,为用户提供了强大的操作工具。希望本文能够帮助你更好地理解这两个组件,让你在使用Linux系统时更加得心应手。
2025-08-12 16:53:11
365
原创 【C/C++】&(struct test*)0->b 讲解
在 C 和 C++ 中,结构体(struct)是一种用户自定义的数据类型,它可以包含多个不同类型的成员。每个成员在内存中都有一个特定的位置,这个位置相对于结构体的起始地址的偏移量,就是我们今天要讨论的主题。理解并掌握结构体成员的偏移量对于 Linux 系统编程至关重要。它不仅可以帮助我们优化内存访问,还可以提高代码的跨平台兼容性和可移植性。通过使用指针和类型转换技巧,我们可以在不实际创建结构体实例的情况下计算成员的偏移量,这是一种简洁且有效的方法。
2025-08-11 22:14:14
334
原创 【Linux】fork( )——干货讲解
在 Linux 系统中,fork是一个非常重要的系统调用,它用于创建一个新的进程。这个新进程几乎是调用fork的父进程的副本。几乎?对,有一些关键的区别,我们稍后会详细解释。fork是 Linux 系统中创建新进程的关键机制,它允许程序轻松地创建子进程来并行处理任务或隔离不同的工作负载。理解fork的工作原理和注意事项对于编写高效、可靠的多进程程序至关重要。小贴士在使用fork时,记得检查fork()的返回值,以确保进程创建成功,并正确处理父进程和子进程的不同执行路径。
2025-08-11 21:45:39
869
原创 【Linux】协议——TCP/IP协议
协议就是双方约定好的通信规则,就像打电话时约定"响三声表示紧急情况"一样。在计算机网络中,协议规定了数据如何打包、传输和解包。现实比喻寄快递:需要填写发件人、收件人、地址(协议头部)打包物品:需要合适的包装盒和填充物(数据封装)运输过程:需要选择快递公司(传输协议)
2025-07-28 18:38:00
1170
原创 【Linux】计算机网络发展背景
Linux网络功能强大而灵活,理解计算机网络背景是掌握Linux网络管理的基础。建议读者从实践入手,逐步深入理解Linux网络工作原理。
2025-07-28 18:37:39
511
原创 【Linux】系统IO的内容——文件描述符——干货讲解
整数标识符:非负整数(0,1,2为保留值)内核对象句柄:操作系统中打开文件的引用标识进程级资源:每个进程独立维护自己的文件描述符表// 标准流对应的文件描述符#define STDIN_FILENO 0 // 标准输入#define STDOUT_FILENO 1 // 标准输出#define STDERR_FILENO 2 // 标准错误。
2025-07-07 16:35:59
696
原创 【Linux】基础IO 内容——理解文件——干货讲解
认知层次核心要点技术体现物理层磁盘存储的二进制数据扇区/块管理抽象层统一文件模型(万物皆文件)VFS 虚拟文件系统逻辑层文件=元数据+内容接口层标准操作接口(open/read/write)系统调用 + 库函数封装权限层访问控制(用户/组/权限位)rwx 权限模型 + ACLLinux 通过精妙的分层抽象,将复杂的硬件操作转化为简单的文件接口。这种设计不仅降低了开发复杂度,更使系统具备极强的扩展性——任何资源只要能抽象成文件,就能无缝集成到 Linux 生态中。
2025-07-04 17:37:01
892
原创 【Linux】进程程序替换——干货核心原理解析
NULL// 使用自定义环境执行Python脚本perror("execle失败");return 1;动态程序加载:运行时切换执行程序环境隔离:创建安全的执行沙箱资源复用:重用已有进程资源多语言集成:无缝执行不同语言程序exec函数族:根据需求选择合适变体参数传递:列表或数组形式,以NULL结尾错误处理:必须检查返回值文件描述符:默认继承,需管理敏感资源环境变量:可通过execle/execve自定义性能提示:在需要频繁执行外部程序的场景中,使用fork()exec()组合比。
2025-07-04 17:36:46
901
原创 【Linux】进程等待——wait/waitpid系统调用—干货解析
进程等待是Linux多进程编程的基石,合理使用wait和waitpid能够:有效预防僵尸进程精确控制进程执行流程获取子进程执行状态构建健壮的多进程应用wait:简单阻塞等待任意子进程waitpid:功能强大,支持指定进程和非阻塞状态解析:使用WIFEXITED等宏正确解析状态非阻塞模式:WNOHANG选项提高响应速度多进程回收:循环处理避免资源泄漏性能提示:在高并发场景中,优先使用的非阻塞模式,结合事件循环机制,可实现高效的子进程管理,相比阻塞等待模式性能提升可达300%。
2025-07-03 17:03:39
1062
原创 【Linux】写时拷贝——干货解析
写时拷贝(Copy-On-Write)共享初始状态:多个进程共享相同的物理内存页延迟复制:直到有进程尝试修改数据时才进行实际复制按需分配:仅复制被修改的页面,而非整个内存空间。
2025-07-01 16:42:13
960
原创 【Linux】环境变量——干货讲解
环境变量是操作系统运行环境的关键参数,用于存储系统配置、路径信息、用户偏好设置等。全局性:影响整个系统或用户会话继承性:父进程的环境变量被子进程继承持久性:可通过配置文件永久保存# 临时添加# 永久添加(用户级)# 永久添加(系统级)
2025-06-27 10:00:00
663
原创 【Linux项目实践】进度条小项目—版本一
在Linux开发中,进度条不仅是提升用户体验的利器,更是掌握终端控制缓冲机制和多文件项目管理的绝佳实践。动态进度展示(0%-100%)旋转动画指示器(/-|)百分比实时更新自适应终端宽度的进度条。
2025-06-22 15:00:00
859
原创 【Linux】常见好玩的yum/apt命令—干货详解
解决依赖问题:自动处理软件依赖关系统一管理机制:标准化软件安装/卸载流程安全更新保障:提供官方源安全更新版本控制:管理软件多版本共存操作yum命令apt命令安装软件更新软件卸载软件搜索软件查看信息清理缓存apt clean。
2025-06-19 16:00:00
962
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人