Python gevent高并发(限制最大并发数、协程池)
实例源码
import time
import gevent
from gevent.pool import Pool
from gevent import monkey
monkey.patch_all()class ABC(object):def __init__(self):# 一,限制最大并发数self.p = Pool(20)self.results = Noneself.num = 5# 二,导入gevent猴子补丁,没有它,协称就不会并发执行# 三,耗时任务或者阻塞任务,异步执行的或者需要并发的就是它了def task(self, i, num):time.sleep(i)self.num += 1self.results = self.numprint("sum = {}".format(self.num))def run(self):time_l=time.time()# 四,任务派发,将15个任务派发给携程去做threads = [self.p.spawn(self.task, 5, self.num) for i in range(40)]# 五,在此阻塞,等所有协程全部完成退出,这一步才执行完gevent.joinall(threads)time_r=time.time()print("总耗时:{}".format(time_r-time_l))if __name__ == "__main__":abc = ABC()abc.run()print(abc.results)
结果:
sum = 6
sum = 7
sum = 8
sum = 9
sum = 10
sum = 11
sum = 12
sum = 13
sum = 14
sum = 15
sum = 16
sum = 17
sum = 18
sum = 19
sum = 20
sum = 21
sum = 22
sum = 23
sum = 24
sum = 25
sum = 26
总耗时:15.019743204116821
26
Python gevent高并发(限制最大并发数、协程池)相关推荐
- Golang并发模型:轻松入门协程池
goroutine是非常轻量的,不会暂用太多资源,基本上有多少任务,我们可以开多少goroutine去处理.但有时候,我们还是想控制一下. 比如,我们有A.B两类工作,不想把太多资源花费在B类务上,而 ...
- 连接池和协程池为何能提升并发能力?
你有没有发现,"内存池"和"进程池"都带有"池"字?其实,这两种技术都属于"池化技术".它通常是由系统预先分配一批资源并 ...
- python协程 并发数量_Python-并发编程(协程)
今天说说协程 一.引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两 ...
- 【并发编程二十】协程(coroutine)_协程库
[并发编程二十]协程(coroutine) 一.线程的缺点 二.协程 三.优点 四.个人理解 五.协程库 1.window系统 2.unix系统(包括linux的各个版本) 2.1.makeconte ...
- python 协程池和pool.map用法
一.问题描述 现在有一段代码,需要扫描一个网段内的ip地址,是否可以ping通. 执行起来效率太慢,需要使用协程. #!/usr/bin/env python # -*- coding: utf-8 ...
- python 协程池
python 协程池 一.问题描述 现在有一段代码,需要扫描一个网段内的ip地址,是否可以ping通. 执行起来效率太慢,需要使用协程. #!/usr/bin/env python # -*- cod ...
- Python进程池,线程池,协程池
线程池 import threading import time def myThread():for i in range(10):time.sleep()print('d') sep=thread ...
- 协程池gevent实现糗事百科爬取
标题 -协程池gevent实现糗事百科爬取 import gevent.monkey gevent.monkey.patch_all() from gevent.pool import Pool im ...
- 十四丶并发编程(线程 进程 协程)
Yuan先生 知识预览 操作系统 回到顶部 操作系统 一 为什么要有操作系统? 现代计算机系统是由一个或者多个处理器,主存,磁盘,打印机,键盘,鼠标显示器,网络接口以及各种其他输入输出设备组成的复杂系 ...
最新文章
- 人大团队研究:面向文本生成,预训练模型进展梳理
- 推荐给c++学习者的经典
- 远程控制软件 TeamViewer | Windoes和Linux下teamviewer软件互连
- 单片机与PC机一样都是计算机,51单片机与PC机通信资料
- 20175305张天钰《java程序设计》第七周学习总结
- PHP开发的爱情盲盒交友系统网站源码
- 计算机组成原理二进制地址码,计算机组成原理第四章第三讲.ppt
- Debian系统关闭iptables的conntrack跟踪
- python写斗地主游戏_python编程斗地主 python编程入门
- Mac 从零搭建Android开发环境记录以及提高效率软件推荐
- 网上商城系统源码 B2C电子商务系统源码
- tdk磁材手册_TDK磁性材料市场.ppt
- 真实项目,用微信小程序开门编码实现(完结)
- MSOCache文件夹能否删除
- R语言笔记-分类变量列联表和独立性检验
- 安装Ubuntu后的配置
- 从反脆弱角度谈技术系统的高可用性
- org.hibernate.PersistentObjectException: detached entity passed to persist: cn.edu.xupt.bean.Users
- String类型转Long类型需要注意的问题
- 计算机类分流论文,储蓄存款分流结构论文