TCP通信并发:

上次的程序只能保持,单线程或者进程

多进程并发服务器

进程的特点(有血缘关系)

创建子进程:fork();

虚拟地址空间被复制 ,从一份变成两份(用户区和内核区)

进程之间的数据不会影响

父进程中的数据被复制给了子进程(都会复制下面的)

用户区:

堆区:栈区:全局数据区:代码区:

内核区:

文件描述符表;

通过父进程,回收子进程资源

支持对客户端连接的服务器程序→多进程版

服务器端需要干什么事?

监听 ,等待客户端的连接(accept,阻塞)

通信,需要和多个客户端建立连接,并且通信,每建立一个连接需要一个专门负责通信的进程

接收数据 →read 、recv →默认阻塞发送数据 →write 、send→默认阻塞

有血缘关系的进程

父进程 一个

子进程 多个

### 代码

多线程版的服务器

主线程→等待并接受客户端的连接

子线程→建立连接之后处理通信的流程

//多个线程共用一个共同的虚拟地址空间

共享资源:

堆区

全局数据区

文件描述符表(共享内存)

独享资源:

栈区

线程资源释放:做线程分离,不用特意回收

代码如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM垃圾回收详解

一、基本概念 1、HotSpot VM :是由 Oracle 公司开发的一种 Java 虚拟机(JVM),是 Java SE 平台上最广泛使用的虚拟机之一。它是 OpenJDK 的一部分,也是 Oracle JDK 的基础之一。使用即时编译(Just-In-Time …

使用ROW_NUMBER()分组遇到的坑

1、再一次清洗数据时,需要过滤重复数据,使用了ROW_NUMBER() 来分组给每组数据排序号 在获取每组的第一行数据 with records as(select cc.F_Id as Id,REPLACE(cc.F_CNKITitle,char(10),1) as F_CNKITitle,REPLACE(REPLACE(cc.F_Special,专题&#xff1…

Kubernetes——基础认识

目录 前言 什么是云原生 云元素 K8s与中间件以及微服务之间的关系 Kubernetes发展历史 一、简介 1.Kubernetes是什么 2.为什么要使用Kubernetes 3.Kubernetes特性 3.1自我修复 3.2弹性伸缩 3.3自动部署和回滚 3.4服务发现和负载均衡 3.5集中化配置管理和密钥管理…

车载测试系列:车载测试流程

车载测试流程是保证软件质量的重要支撑,优秀的团队都必须拥有规范的流程体系支撑,它能够约束测试人员的测试行为,约束测试环境的测试精度,提升测试的覆盖度,保证团队成员工作的协调性。 该测试流程建立的依据&#xf…

书生浦语训练营第2期-第7节笔记

一、为什么要研究大模型的评测? 首先,研究评测对于我们全面了解大型语言模型的优势和限制至关重要。尽管许多研究表明大型语言模型在多个通用任务上已经达到或超越了人类水平,但仍然存在质疑,即这些模型的能力是否只是对训练数据的…

二分查找向下取整导致的死循环69. x 的平方根

二分查找向下取整导致的死循环 考虑伪题目:从数组arr中查找出目标元素target对应的下标,如果数组中不存在目标元素,找 到第一个元素值小于target的元素的下标。 编写二分查找算法如下: Testvoid testBinarySearch(){int[] arr n…

Web 功能以及源码讲解

Web 功能以及语言讲解 培训、环境、资料、考证 公众号:Geek极安云科 网络安全群:624032112 网络系统管理群:223627079 网络建设与运维群:870959784 移动应用开发群:548238632 短视频制作群: 744125867极…

网络新手如何上手水牛社软件?我的建议与看法

水牛社是一款专为电脑用户设计的软件,拥有明确的著作权,其核心功能在于发布和整合各类网络活动任务资源、教程等,内容多元且不设固定分类。其靠谱程度取决于你对软件的了解程度和个人需求的适配性。 软件内部包含五个主要栏目,大…

轮廓提取、矩形标记时,点的位置需要重标

在下图中的0,3,1,2位置如何变换成0,1,2,3 先显示结果: 变换之后图: 这边提供两种解决方案: 第一种:将坐标值相加求和,采用冒泡排序实现从小到大…

使用固定公网地址远程访问开源服务器运维管理面板1Panel管理界面

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、…

Excel文件解析---超大Excel文件读写

1.使用POI写入 当我们想在Excel文件中写入100w条数据时,使用XSSFWorkbook进行写入时会发现,只有将100w条数据全部加载到内存后才会用write()方法统一写入,效率很低,所以我们引入了SXXFWorkbook进行超大Excel文件读写。 通过设置 …

C语言leetcode刷题笔记1

C语言leetcode刷题笔记1 第1题:136.只出现一次的数字两次遍历(O(numsSize^2))位运算 第2题:202.快乐数快慢指针记录历史数据 第3题:53.最大子数组和暴力求解(超时)动态规划分治 第1题&#xff1…

每日Attention学习3——Cross-level Feature Fusion

模块出处 [link] [code] [PR 23] Cross-level Feature Aggregation Network for Polyp Segmentation 模块名称 Cross-level Feature Fusion (CFF) 模块作用 双级特征融合 模块结构 模块代码 import torch import torch.nn as nnclass BasicConv2d(nn.Module):def __init__(…

PLC学习笔记

PLC学习笔记 前言一、一些基操知识二、GX works2编程2.1 位逻辑1.2 中间寄存器1.3 PLC的扫描方式 总结 前言 我这个人真的是太渴望知识了~ 一、一些基操知识 一般X表示输入,Y表示输出。一般八个为一组X0~X7M表示中间寄存器,M0~M7时间T、计数C 二、GX …

BiTCN:基于卷积网络的多元时间序列预测

在时间序列预测领域中,模型的体系结构通常依赖于多层感知器(MLP)或Transformer体系结构。 基于mlp的模型,如N-HiTS, TiDE和TSMixer,可以在保持快速训练的同时获得非常好的预测性能。基于Transformer的模型,如PatchTST和ittransfo…

【面经】网络

了解TCP/IP协议,了解常用的网络协议:study-area 一、TCP/IP协议 TCP/IP协议是一组网络通信协议,旨在实现不同计算机之间的信息传输。 1、TCP/IP四层模型: 网络接口层、网络层、传输层和应用层。 网络接口层:定义了数据的格式和…

Python | Leetcode Python题解之第67题二进制求和

题目: 题解: class Solution:def addBinary(self, a, b) -> str:return {0:b}.format(int(a, 2) int(b, 2))

python面向函数

组织好的,可重复利用的,用来实现单一,或相关联功能的代码段,避免重复造轮子,增加程序复用性。 定义方法为def 函数名 (参数) 参数可动态传参,即使用*args代表元组形式**kwargs代表字典形式,代替…

python编程“常识”【pip安装路径、计算、pycharm中的terminal运行前面的PS修改成自己环境】

一、默认的pip install包路径: pip show pip 二、计算 打开cmd,输入: ipython 例如你要计算2的13次方: ok. 三、pycharm中的terminal运行前面的PS修改成自己环境 未修改前: 修改过程: 打开设置找到too…

vscode中配置 leetcode 插件

1. 环境准备 插件安装介绍 介绍 VS Code 1.23.0 Node.js 10 注意:请确保Node在PATH环境变量中。您也可以通过设定 leetcode.nodePath 选项来指定 Node.js 可执行文件的路径。 1.1 Node.js 安装 首先,您需要解压下载的 .tar.xz 文件。您可以使用以下…