- 博客(71)
- 收藏
- 关注
原创 【Linux】进程信号
1. 所有信号产生,最终都要有 OS 来进行执行,为什么?原因:因为信号是一种由操作系统提供的异步通信机制。硬件中断(如 Ctrl+C )系统调用(如 kill() )内核检测(如非法内存访问导致的 SIGSEGV)这些行为都发生在内核态,用户态的进程不能主动处理信号,必须等 OS 转而调度执行进程的信号处理函数,所以信号的分发和处理调度,必须由 OS 统一协调。2. 信号的处理是否是立即处理的?不一定是立即处理。
2025-09-02 16:23:33
944
1
原创 《算法新手必杀技:11个基础模板征服80%编码题》
位运算:改变某一位的状态 x ^ 1;「截断⾼位」:(push << 1) ˆ ((1 << 5) − 1)
2025-06-25 18:06:04
1111
3
原创 socket编程和传输层协议
在这个状态下,服务器会等待客户端的ACK包,以完成TCP三次握手连接的过程。为什么要维持一段时间:1、因为四次挥手的最后一次ACK应答,发起方无法确认对方是否收到,需要等待一段时间,如果被动方补发了第三次挥手的FIN报文,这时主动方就可以进行第四次挥手的ACK应答报文补发,尽可能保证四次挥手成功。这个不怕,因为TCP协议中有32位确认序号,例如1001-2000序号的ACK丢了,只要客户端收到2001-3000序号(比2000大就行)的ACK,就说明之前的报文都收到了,此时直接将窗口滑动至3001。
2025-06-24 10:45:14
797
1
原创 I/O 多路复用
什么是 select?select 是I/O 多路复用的一种机制,最早在 BSD Unix 中引入,用于监控多个文件描述符(FD)的 I/O 状态变化。它允许程序同时监听多个 FD,以判断哪些可以进行读、写或异常处理。2.什么是poll?poll 是一种I/O 多路复用技术,常用于处理大量并发连接,尤其在网络编程中广泛应用。它的设计目的是改进 select 的一些限制,尤其在处理大量文件描述符时更具优势。3.什么是epoll?epoll 是 Linux 内核 2.6 版本引入的。
2025-06-22 14:50:26
1049
1
原创 1.2消息队列——“0基础写项目,XXXX,就看这篇文章”
上篇我们介绍了实现消息队列的一些必要第三方库和开发环境,本篇我们来介绍该项目的核心需求和模块划分,还有一个c++11的future,用于获取异步任务的结果。闲话少叙,直接开始。。。std::future 是 C++11 标准库中的一个模板类,它表示一个异步操作的结果。当我们在多线程编程中使用异步任务时, std::future 可以帮助我们在需要的时候获取任务的执行结果。std::future 的一个重要特性是能够阻塞当前线程,直到异步操作完成,从而确保我们在获取结果时不会遇到未完成的操作。应用场景。
2025-06-14 15:36:06
1041
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅