自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 23 种设计模式整理(基于腾讯云技术文章)

核心目标:定义类 / 对象之间的交互规则,明确职责分工,提升代码可读性与灵活性。​行为型模式关注的是各个类之间的相互作用,将职责划分清楚,使得我们的代码更加地清晰。设计模式的本质:不是 “固定代码模板”,而是对 “常见问题解决方案” 的抽象,核心是解耦、复用、扩展、清晰职责。​学习建议:​先理解核心设计原则(三大原则),再学习模式;​结合实际场景选择模式(如多属性类用建造者,动态增强用装饰 / 代理);​避免过度设计(简单场景用简单工厂,无需强行用抽象工厂)。​最终目标。

2025-11-03 23:57:58 717

原创 内存池的实现与解析(v1)

平时顾客买东西(程序需要内存),你得去批发市场进货(向操作系统申请内存)。如果顾客每次只买一瓶水,你每次都跑一趟批发市场,是不是特别麻烦?(频繁申请 / 释放内存会让程序变慢)提前进一大批货放在仓库(内存池),顾客要的时候直接从仓库拿,用完了还回仓库,不用每次都跑批发市场。简单说:内存池是一种 “提前申请大块内存,然后自己管理分配和回收” 的技术,目的是提高内存使用效率,减少频繁向系统申请内存的开销。提前申请大块内存,切成小块(Slot)管理。

2025-10-14 20:57:15 1719

原创 从TCP到HTTP高并发的C语言实现 - Linux环境完整指南

学习最基础的TCP Socket编程理解TCP连接的生命周期(创建→绑定→监听→接受→通信→关闭)掌握Linux系统调用:socket(), bind(), listen(), accept(), send(), close()

2025-09-29 00:18:31 619

原创 技术栈演化脉络与可落地知识体系:从 TCP 到操作系统的高并发实践指南

TCP 是内核给你的「字节流承诺」,HTTP 是「文本语义约定」,高并发是「把内核调度器当队友而非黑盒」,多进程 / 线程 / 协程是「用户态的二次调度」,最终用操作系统指标给业务指标做「实时翻译」。将这四层(应用协议层→IO 层→用户态调度层→内核态 OS 层)的映射关系形成心智图,即可掌握从 TCP 到操作系统的高并发核心体系,实现技术落地与问题排查的闭环。

2025-09-29 00:12:07 592

原创 学习 Nginx 源码

(HTTP 请求处理)

2025-09-27 17:30:35 1762

原创 Nginx

Nginx(发音 “engine x”),它是全球最流行的高性能 HTTP 服务器、反向代理服务器,同时也支持负载均衡、动静分离、缓存等核心功能,广泛用于互联网架构(如大型网站、APP 后端、CDN 节点等)。Nginx 的配置文件默认路径为 /etc/nginx/nginx.conf(Linux 系统),核心配置分为 “全局块”“events 块”“http 块”,以下是几个常用场景的简化配置示例:​。“反向代理” 是 Nginx 最核心的角色之一,理解它需要先区分 “正向代理” 与 “反向代理”:​。

2025-09-27 17:09:55 1638

原创 客户端突然断开连接

调用 fork() 后,父进程的所有文件描述符(包括 socket)会被 “复制” 给子进程 —— 父和子的 socket 指向同一个 “内核资源”(可以理解为 “共享同一个通信通道”),只有当 “所有指向这个资源的文件描述符都被关闭”,内核才会真正释放这个资源。客户端突然断开后,服务器的子进程会自动清理资源(关闭客户端套接字、退出子进程),父进程完全不受影响,继续等待新的客户端连接 —— 这就是多进程的好处:一个客户端的异常不会拖累整个服务器。代码里是怎么处理的?常见的可改选项有这些(实战中常用)​。

2025-09-27 16:52:33 867

原创 TCP 服务器的核心工作流程

此时 socket 会 “盯着” 8080 端口,一旦有客户端发 connect() 请求(比如你写的客户端程序),就会把这个请求放进等待队列,等着 accept() 去 “接”。子进程退出后,父进程如果不 “收尸”(调用 wait() 或 waitpid()),子进程会变成 “僵尸进程”(占着 PID 不释放,多了会导致系统资源耗尽)。咱们把代码里最核心的几个函数拎出来,一个个讲透 —— 这些函数是 Linux 网络编程的 “基本功”,学会了以后写其他网络程序也能用:​。光看不行,咱们得跑起来才印象深。

2025-09-27 16:45:36 697

原创 Linux 下 TCP 客户端 - 服务器通信实现

服务器端主要负责创建套接字、绑定地址、监听连接请求,并为每个客户端连接创建子进程来处理数据接收等操作,同时通过信号处理防止僵尸进程的产生。客户端主要负责创建套接字、连接到服务器,并向服务器发送用户输入的消息,同时可以通过输入 “exit” 退出连接。本文实现了一个基于 Linux 的 TCP 客户端 - 服务器通信程序,服务器端能够同时处理多个客户端连接,客户端可以向服务器发送消息。通过这个简单的示例,展示了 TCP 网络编程的基本流程和关键函数的使用,为进一步开发更复杂的网络应用奠定了基础。

2025-09-25 22:35:41 579

原创 Linux Socket 网络(自我学习不喜勿喷)

客户端:主动发起通信的程序,无需绑定固定端口,系统会自动分配端口。例如本地 FTP 客户端向远程服务器请求文件时,本地 FTP 程序即为客户端。服务器端:被动等待通信请求的程序,需绑定固定端口以接收客户端连接。例如远程 FTP 服务器,用于响应客户端的文件请求。部分场景下,程序可同时作为客户端与服务器端,如 P2P 通信。

2025-09-16 19:05:55 639

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除