进程、线程、多路复用

本文介绍了Linux服务器处理多个用户请求的三种方式:多进程并发服务器、多线程并发服务器和IO复用。在多进程服务器中,通过fork创建子进程处理客户请求;多线程服务器则使用线程start创建子线程处理需求;IO多路复用如select、poll、epoll则允许一个线程监视多个句柄。
摘要由CSDN通过智能技术生成

为了让服务器能够处理多个用户请求,所以Linux有三种方式:多进程并发服务器、多线程并发服务器、IO复用

在学习过程中,我发现先了解整体流程,在进行梳理会记忆的更加准确和深刻,本篇文章,我首先会将流程梳理,在介绍知识点


1.多进程并发服务器

基本思路:

建立连接【socket()创建监听套接字,bind()绑定地址,listen()设置最大监听数】

在主业务while(1)循环中,accept()等待接受用户连接请求,创建fork()进程成功后

父进程关闭连接套接字,子进程关闭监听套接字

子进程处理客户请求(读写操作),父进程等待客户连接


进程:正在运行的程序及其占用的资源(CPU、内存、系统资源)叫做进程。进程这个概念是针对系统而不是针对用户的,一个程序可以执行多次,多个进程可以执行一个程序。

Linux下进程内存的分布是(自上而下):系统空间、参数区(命令行参数)、栈、堆、数据段(.bss\.data\.rodata)、文本段。

fork()函数实现多进程并发服务器:子进程先执行还是父进程先执行是不确定的,取决于系统内核的调度。

pid_t      pid;
pid=fork();//调用for
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值