
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文基于 Linux 平台,从零实现 UDP 网络编程的三个迭代版本:基础回显服务器、英文翻译服务器、多用户并发聊天服务器。讲解 socket、bind、recvfrom、sendto 等系统调用用法,完成服务端 / 客户端开发、业务解耦、多线程与线程池优化,实现全双工通信,并补充跨平台通信基础原理,适合 UDP 网络编程入门学习。

软件包管理器yum、编辑器vim使用与相关命令

UART(Universal AsynchronousReceiver/Transmitter)是一种异步、全双工的串行通信接口,常用于微控制器与计算机、其他微控制器或外部设备之间的数据交换,下图是UART通信所需的信号线,其中Tx用于发送数据,Rx用于接受数据。

在主程序运行过程中,出现了特定事件,使得CPU暂停当前正在运行的程序,转而去处理这个事件,等这个事件处理完成之后,CPU再回到刚才被打断的位置继续处理,这就是中断。那个打断CPU执行的特定事件,我们一般称之为中断源。被中断源打断的位置我们称为断点。处理特定事件的过程,我们称为执行中断处理程序。正在执行中断程序的时候,这个时候有可能被另外一个中断源给中断,CPU转而去执行另外一个中断源的中断处理程序

在学习string之前我们要先了解string其实诞生的比STL早,所以从发展历史角度来看你它应该归于标准库,但是从广义来看它又应归于STL,因为它也是数据结构,它也有STL的各种通用接口。从这里我们可以看到我们要学习的string是属于C++标准库的类,并且是经过类模板实例化的具体类型,本质上可以看作的管理char字符的顺序表,也可以简单理解成字符串。注意: 1、要使用string需要using

本文讲解池化技术核心思想,并基于策略模式实现 C++ 日志模块,包含日志等级、时间戳、控制台 / 文件输出、线程安全封装,采用 RAII 与内部类完成日志拼接与自动刷新,可直接集成到线程池等后端项目中。

版本控制器Git、调试器 - gdb/cgdb使用、一些实用的调试技巧

互斥锁易引发线程饥饿与 CPU 效率低下问题,本文基于 Linux pthread 库讲解条件变量的核心原理与接口使用,阐述线程同步的本质;结合经典生产者消费者模型,实现阻塞队列的基础版本,并通过 RAII 思想完成条件变量与互斥锁的封装,推出更安全优雅的阻塞队列 V2 版,同时演示任务对象与函数的传递场景。

本文围绕多线程并发访问临界资源的数据不一致问题展开,先阐述线程互斥核心概念,再通过抢票案例剖析并发问题根源,详细介绍 pthread 互斥量接口使用,深入解析互斥的硬件与软件实现原理,最后给出互斥锁的 RAII 风格面向对象封装方案,助力读者全面理解线程互斥机制及实践应用。

本文聚焦 “排序类贪心问题”,提出 “相邻元素交换法” 推公式的核心思路 —— 通过对比相邻两元素交换前后的目标函数(如最大值、总和),推导最优排序规则(cmp 函数逻辑)。结合洛谷 P1012(拼数)、P2878(护花)、P1842(奶牛杂技)3 道经典例题,详解从问题分析到代码实现的完整流程,帮助读者掌握 “局部最优推导全局最优” 的解题思维。








