news 2026/5/30 17:43:28

从多进程到多线程:构建高并发服务器的演进之路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从多进程到多线程:构建高并发服务器的演进之路

在网络编程中,为了同时处理多个客户端的连接,服务器必须具备并发处理能力。我们通常有两种选择:多进程模型和多线程模型。本文将结合笔记内容,重点解析多线程服务器的实现架构、资源管理及代码实践。

1. 并发模型深度对比:进程 vs 线程

根据笔记,我们可以总结出两种模型的核心差异:

特性多进程服务器多线程服务器
创建方式fork()pthread_create()
内存布局拥有独立的虚拟地址空间(用户区完全复制)共享虚拟地址空间(堆区、全局区、文件描述符表共享)
独享资源所有数据独立仅独享栈区
资源消耗较高(内核需维护进程控制块 PCB)较低(轻量级,共用地址空间)
回收机制信号SIGCHLD处理或wait/waitpid线程分离pthread_detachpthread_join

关键结论:虽然多进程提供了更好的隔离性,但多线程由于系统资源占用更少,且在文件描述符表共享上更具优势,成为高并发场景下的首选。


2. 多线程服务器的标准流程

一个标准的多线程并发服务器遵循以下“四步走”流程:

  1. 初始化socket()->bind()->listen()
  2. 主线程:在一个while(1)循环中调用accept(),阻塞等待新连接。
  3. 创建线程:一旦accept成功,主线程立即调用pthread_create()创建子线程。
  4. 子线程回调:子线程进入回调函数,执行recv()send()与客户端通信。

3. 代码实现:多线程并发服务器

下面的代码展示了如何利用线程池的思想(或即时创建线程)处理并发请求,并使用**线程分离(pthread_detach)**机制自动释放资源。

代码案例:thread_server.c
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<pthread.h>#include<arpa/inet.h>// 定义一个结构体用于给子线程传递参数structSockInfo{intcfd;// 通信文件描述符structsockaddr_inaddr;//
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 2:34:35

Unsloth框架深度解析:高效率LLM训练核心技术揭秘

Unsloth框架深度解析&#xff1a;高效率LLM训练核心技术揭秘 1. Unsloth 是什么&#xff1f;为什么它让大模型训练变得轻巧又高效 你有没有试过在本地显卡上微调一个7B参数的LLM&#xff1f;可能刚跑几轮就遇到显存爆满、训练慢得像加载GIF动图、GPU利用率常年卡在30%——不是…

作者头像 李华
网站建设 2026/5/20 16:56:10

UNet人脸融合艺术风格创作实战案例

UNet人脸融合艺术风格创作实战案例 1. 为什么人脸融合能玩出艺术感&#xff1f; 你有没有试过把一张梵高自画像的脸&#xff0c;融合进自己拍的旅行照里&#xff1f;或者让朋友的照片突然变成赛博朋克风格的霓虹肖像&#xff1f;这不是PS图层叠加&#xff0c;也不是滤镜套用—…

作者头像 李华
网站建设 2026/5/28 6:38:12

手机AI助手来了!Open-AutoGLM实现小红书自动搜索

手机AI助手来了&#xff01;Open-AutoGLM实现小红书自动搜索 1. 这不是科幻&#xff0c;是今天就能用上的手机AI助理 你有没有过这样的时刻&#xff1a; 想查小红书上最近爆火的咖啡探店攻略&#xff0c;但手正端着咖啡杯腾不开&#xff1b; 朋友发来一条“快帮我搜下XX品牌防…

作者头像 李华
网站建设 2026/5/20 21:19:50

训练中断怎么办?Qwen2.5-7B断点续训操作指南

训练中断怎么办&#xff1f;Qwen2.5-7B断点续训操作指南 1. 为什么断点续训不是“可选项”&#xff0c;而是“必选项” 你刚跑完第37个step&#xff0c;显卡温度飙升到86℃&#xff0c;风扇狂转如直升机起飞——突然黑屏。 你重启后打开终端&#xff0c;发现训练进程早已消失…

作者头像 李华
网站建设 2026/5/23 16:44:35

教育行业AI落地新思路:Qwen萌宠生成器应用案例分享

教育行业AI落地新思路&#xff1a;Qwen萌宠生成器应用案例分享 在幼儿园美术课上&#xff0c;老师刚说完“请画一只会跳舞的彩虹小猫”&#xff0c;教室里就响起此起彼伏的提问&#xff1a;“老师&#xff0c;彩虹小猫长什么样&#xff1f;”“它跳舞时尾巴是弯的还是卷的&…

作者头像 李华
网站建设 2026/5/19 18:52:01

Unsloth如何实现2倍速训练?GPU算力适配深度解析

Unsloth如何实现2倍速训练&#xff1f;GPU算力适配深度解析 1. Unsloth 简介 用Unsloth训练你自己的模型——这不是一句宣传口号&#xff0c;而是许多开发者在实际微调任务中反复验证过的体验。Unsloth是一个开源的LLM微调和强化学习框架&#xff0c;它的核心目标很实在&…

作者头像 李华