python实现并发的方式_python实现并发服务器实现方式(多线程/多进程/select/epoll)...

并发服务器开发

并发服务器开发,使得一个服务器可以近乎同一时刻为多个客户端提供服务。实现并发的方式有多种,下面以多进程,多线程,IO多路复用等方式实现并发。这里使用网络编程中的TCP服务器和客户端通信为例子。

多进程并发阻塞

利用进程把客户端和服务器进行管理,当有新的客户端连接到服务器时,就创建一个新的进程来管理,通过操作系统的调度,从而实现了并发的操作

多线程并发阻塞

多线程和多进程类似,只是线程间共享内存空间,要注意变量的管理

多路复用IO---select模型

在操作系统层面上,系统提供了一个select接口,它会轮询给定的文件描述符状态,如果其中有描述符的状态改变,select()就会返回有变化的文件描述符。

优点:良好的跨平台支持

缺点:1.监测的文件描述符数量有最大限制,Linux系统一般为1024,可以修改宏定义或者内核进行修改,但是会造成效率低下;2.对文件描述符采用轮询机制,每个文件描述符都会询问一遍,这样很消耗CPU时间

多路复用IO---epoll模型

为了解决select轮询机制造成的效率低下问题,则引入了epoll接口。相较于select的两大优势。1.没有文件描述符最大数量的限制(最大数量则看内存大小);2.采用时间通知机制,当文件描述符状态有变时,主动通知内核进行调度。其中print注释是为了打印对象,查看对象是什么。

原文:https://www.cnblogs.com/leijiangtao/p/11819032.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值