实例源码

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高并发(限制最大并发数、协程池)相关推荐

  1. Golang并发模型:轻松入门协程池

    goroutine是非常轻量的,不会暂用太多资源,基本上有多少任务,我们可以开多少goroutine去处理.但有时候,我们还是想控制一下. 比如,我们有A.B两类工作,不想把太多资源花费在B类务上,而 ...

  2. 连接池和协程池为何能提升并发能力?

    你有没有发现,"内存池"和"进程池"都带有"池"字?其实,这两种技术都属于"池化技术".它通常是由系统预先分配一批资源并 ...

  3. python协程 并发数量_Python-并发编程(协程)

    今天说说协程 一.引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两 ...

  4. 【并发编程二十】协程(coroutine)_协程库

    [并发编程二十]协程(coroutine) 一.线程的缺点 二.协程 三.优点 四.个人理解 五.协程库 1.window系统 2.unix系统(包括linux的各个版本) 2.1.makeconte ...

  5. python 协程池和pool.map用法

    一.问题描述 现在有一段代码,需要扫描一个网段内的ip地址,是否可以ping通. 执行起来效率太慢,需要使用协程. #!/usr/bin/env python # -*- coding: utf-8 ...

  6. python 协程池

    python 协程池 一.问题描述 现在有一段代码,需要扫描一个网段内的ip地址,是否可以ping通. 执行起来效率太慢,需要使用协程. #!/usr/bin/env python # -*- cod ...

  7. Python进程池,线程池,协程池

    线程池 import threading import time def myThread():for i in range(10):time.sleep()print('d') sep=thread ...

  8. 协程池gevent实现糗事百科爬取

    标题 -协程池gevent实现糗事百科爬取 import gevent.monkey gevent.monkey.patch_all() from gevent.pool import Pool im ...

  9. 十四丶并发编程(线程 进程 协程)

    Yuan先生 知识预览 操作系统 回到顶部 操作系统 一 为什么要有操作系统? 现代计算机系统是由一个或者多个处理器,主存,磁盘,打印机,键盘,鼠标显示器,网络接口以及各种其他输入输出设备组成的复杂系 ...

最新文章

  1. 人大团队研究:面向文本生成,预训练模型进展梳理
  2. 推荐给c++学习者的经典
  3. 远程控制软件 TeamViewer | Windoes和Linux下teamviewer软件互连
  4. 单片机与PC机一样都是计算机,51单片机与PC机通信资料
  5. 20175305张天钰《java程序设计》第七周学习总结
  6. PHP开发的爱情盲盒交友系统网站源码
  7. 计算机组成原理二进制地址码,计算机组成原理第四章第三讲.ppt
  8. Debian系统关闭iptables的conntrack跟踪
  9. python写斗地主游戏_python编程斗地主 python编程入门
  10. Mac 从零搭建Android开发环境记录以及提高效率软件推荐
  11. 网上商城系统源码 B2C电子商务系统源码
  12. tdk磁材手册_TDK磁性材料市场.ppt
  13. 真实项目,用微信小程序开门编码实现(完结)
  14. MSOCache文件夹能否删除
  15. R语言笔记-分类变量列联表和独立性检验
  16. 安装Ubuntu后的配置
  17. 从反脆弱角度谈技术系统的高可用性
  18. org.hibernate.PersistentObjectException: detached entity passed to persist: cn.edu.xupt.bean.Users
  19. String类型转Long类型需要注意的问题
  20. 计算机类分流论文,储蓄存款分流结构论文

热门文章

  1. 临床外显子组测序分析中的那些坑(下)
  2. 16款测序平台性能大PK,华大表现不俗!基于人类和细菌基因组DNA水平的多平台测序数据研究成果发布...
  3. 每天一个实用小技巧!归纳多个文件、批量修改文件名
  4. Mac上时钟也能自定义的方法你知道吗
  5. 找不到腾讯云MFA动态码了,无法登录腾讯云的解决办法
  6. Laravel框架登录功能实例
  7. python数据库操作实例
  8. RTX5 | 事件标志组02 - 置位事件标志组,并获取事件标志组的值
  9. 判断大小简单算法_算法浅谈——人人皆知却很多人写不对的二分法
  10. js中的时间与毫秒数互相转换,倒计时