
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
进程可以注册一个自己写的函数,当收到信号时,不执行默认动作,而是执行我们自定义的逻辑。注册方式:用signal()或更安全的系统调用,把信号和自定义处理函数绑定。关键注意事项:信号处理函数里,必须使用异步信号安全的函数(也叫可重入函数),比如write()类型的操作。不能用printfmalloc这类非安全函数,否则可能导致程序崩溃。类比:就像上课铃响了,你不回教室,反而去操场打球,就是 “自定义

bind 函数本质是向操作系统内核注册套接字的网络标识,内核会记录该套接字与特定 IP + 端口的映射关系,后续网络数据包到达时,内核可通过目标地址快速定位到对应的套接字并交付数据。:将创建的套接字与本机特定 IP 地址和端口号绑定,为服务器程序确立固定的通信地址标识,让客户端能够通过该地址发起连接请求,是 TCP/UDP 服务器初始化的关键步骤之一。因此为了方便,我们设计一个InetAddr类
生产者消费者模型是操作系统和多线程编程中的经典同步 / 互斥模型,在 Linux 多线程场景中尤为常见。它的核心目标是:解决生产者和消费者之间 “生产 / 消费速度不匹配” 的问题,同时实现两者的解耦与安全协作。简单来说,模型描述了两类线程如何通过一个固定大小的共享缓冲区(仓库)协调工作,避免数据竞争、死锁或资源浪费。角色核心职责阻塞规则生产者线程负责生成数据,将数据放入缓冲区缓冲区满时,必须停止
生产者消费者模型是操作系统和多线程编程中的经典同步 / 互斥模型,在 Linux 多线程场景中尤为常见。它的核心目标是:解决生产者和消费者之间 “生产 / 消费速度不匹配” 的问题,同时实现两者的解耦与安全协作。简单来说,模型描述了两类线程如何通过一个固定大小的共享缓冲区(仓库)协调工作,避免数据竞争、死锁或资源浪费。角色核心职责阻塞规则生产者线程负责生成数据,将数据放入缓冲区缓冲区满时,必须停止
ELF(Executable and Linkable Format)是 Linux 下可执行文件、目标文件、共享库的标准二进制格式。链接阶段的「半成品 / 成品」:目标文件.o、静态库.a、动态库.so、可执行文件,本质都是 ELF 格式。加载阶段的「指令手册」:可执行 ELF 里的「程序头表」,就是给操作系统加载器看的 “说明书”。1.可重定位文件(RelocatableFile):即xxx.

操作系统为每个进程创建了一个独立的虚拟地址空间,进程在这个空间里使用虚拟地址运行,由硬件和系统负责把虚拟地址翻译成真实的物理地址,从而实现了进程隔离、内存复用和统一编程。

进程正在运行时,需要等待某件事完成,主动放弃 CPU、停下来不运行,进入等待状态,这就叫进程阻塞。进程运行中缺资源、等 IO、等事件,主动放弃 CPU 进入等待,就是进程阻塞;事件结束再变回就绪,重新排队上 CPU。进程挂起:由用户或操作系统,把一个进程暂时暂停,暂停后进程不参与CPU调度,暂时不运行。而且会把进程数据从内存移到外存(硬盘),腾出内存空间。

•在Linux下安装软件,⼀个通常的办法是下载到程序的源代码,并进⾏编译,得到可执⾏程序,但是这样太⿇烦了,于是有些⼈把⼀些常⽤的软件提前编译好,做成软件包(可以理解成windows上 的安装程序)放在⼀个服务器上,通过包管理器可以很⽅便的获取到这个编译好的软件包,直接进⾏安 装.• 软件包和软件包管理器,就好⽐"App"和"应⽤商店"这样的关系.

class 类模板名// 类内成员定义// 类模版 写一个栈的模板public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误void Stack<T>::Push(const T& data)//模板声明跟定义分离的写法(在同文件内)// 扩容++_size;int main()// int型栈// double型栈return 0;








