使用池来实现并发服务器
#使用池来实现并发服务器
import socket
from multiprocessing import cpu_count,Pool
from multiprocessing.pool import ThreadPoolserver=socket.socket()
server.bind(('0.0.0.0',8080))
server.listen(1000)def work_process(server):#处理server的进程thread_pool=ThreadPool(cpu_count()) #如果不想用线程池的话,可以直接用普通线程while True:connection,remote_address=server.accept()thread_pool.apply_async(worker_thread,args=(connection,))
def worker_thread(connection):while True:recv_data=connection.recv(1000)if recv_data:print(recv_data.decode('utf-8'))connection.send(recv_data)else:connection.close()break
n=cpu_count() #获取cpu个数
pool=Pool(n)
for i in range(2):pool.apply_async(work_process,args=(server,))
pool.close()
pool.join()
转载于:https://www.cnblogs.com/lajiao/p/8337096.html
使用池来实现并发服务器相关推荐
- java设计高并发内存池_高并发服务器-连接池的设计
高并发服务器-连接池的设计 高并发服务器需要有一些池的设计,如内存池,连接池,数据库连接池. 池(pool)的设计主要考虑到一些资源的频繁申请和释放,尤其是在高并发的服务器中,几万甚至几十万并发每秒, ...
- 利用libevent 和线程池实现高并发服务器的设计
主进程添加监听套接字的事件并进行事件循环,将连接描述符放入定义的数据结构中,并在主进程中进行写管道,触发子线程的读管道事件,然后从连接结构中获取连接描述符进行和客户端进行通信.其中主进程和子线程都有不 ...
- linux线程池实现多线程并发,基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF...
基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF 第 卷 第 期 电子设计工程 年 月 基于 的多线程池并发 服务器设计 陈 涛 任海兰 武汉邮电科学研究院 湖北 武汉 摘要 时至今 ...
- java web 大并发服务器_计算-服务器最大并发量-http协议请求-以webSphere服务器为例-考虑线程池...
请求的处理流程 广域网上有大量的并发用户同时访问web服务器,web服务器传递请求给应用服务器(web容器),web容器传递请求给ejb容器,然后ejb容器发送数据库连接请求给数据库. 请求的处理流程 ...
- 创建三个并发进程linux,Linux下几种并发服务器的实现模式(详解)
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...
- 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...
1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...
- 基于Linux平台的TCP通信并发服务器---在线英语词典项目
文章目录 前言 一.什么是并发服务器 二.服务器的实现 三.客户端的实现 四.代码测试结果 五.代码测试注意 总结 前言 本文是我在IO进线程.网络编程学习阶段的练习项目.项目基于linux平台,利用 ...
- 大型网站架构演变过程、大并发服务器架构
大型网站架构演变过程: [Step1]web server与数据库分离 web动静资源分离 静态请求:如html, js, css, img 动态请求:如jsp, php [Step2]缓存处理 客户 ...
- 网络基础+Socket编程+高并发服务器
网络编程 P1 复习 Linux 网络编程 P2 信号量生产者复习 P3 协议 P4 七层模型和四层模型及代表协议 P5 网络传输数据封装流程 P6 以太网帧和ARP请求 P7 IP 协议 P8 TC ...
最新文章
- Eclipse设置字体大小等!
- mysql操作xml字段_SQL XML 字段操作
- 高级php面试题及部分答案
- insert和insertSelective区别
- SAP License:SAP CO ML 物料帐配置
- Vue.js 条件渲染 v-if、v-show、v-else
- AI医疗--概念,应用场景及现状解析
- 小米9se无法连接adb的问题
- 结构建模设计——Solidworks软件之草图绘制中借助新建基准面实现在曲面表面绘制特征的实现步骤总结
- 大厂对学历的要求是什么?如果学历不够,拿什么来凑?
- java Serializable
- 中国人必须知道的76个常识。。。看了才发现,自己知道的实在太少了。。。
- spark启动历史服务配置时报错java.net.ConnectException: Connection refused; For more details see: http://wiki.ap
- 我对WiCoNet,DCFAM,UDA Transformer的理解
- android临时root权限获取失败,获取ROOT权限失败怎么办?
- Scratch少儿编程案例-水果忍者-学生作业
- Docker Images Explore
- Office EXCEL 如何实现在单元格内换行
- Go爬虫学习笔记(三)
- 《信息检索》课程论文撰写指南 及 分享加分说明
热门文章
- python对列表进行去重_Python对列表去重的4种方法
- c语言n位水仙花数简书,Kotlin中函数式编程API(8)求阶乘和计算水仙花数
- php ob flush 不管用,php ob_flush 不能每隔一秒输出
- java 递归return_java递归和反向递归
- php首尾空格,php 去掉 头尾 空格 2种方法
- C++ 接口(抽象类)的概念
- python【力扣LeetCode算法题库】836- 矩形重叠
- Android移动开发之【Android实战项目】后台服务Service
- java数据库编程(JDBC)
- python基础练习(四)