python教程:使用gevent实现高并发并限制最大并发数

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

import time
import gevent
from gevent.pool import Pool
from gevent import monkey
# 一,定义最大并发数
p = Pool(20)
# 二,导入gevent猴子补丁,没有它,协称就不会并发执行monkey.patch_all()#  三,耗时任务或者阻塞任务,异步执行的或者需要并发的就是它了
def task(i):time.sleep(i)print("----这里---------")# 四,任务派发,将15个任务派发给协程去做
threads = [p.spawn(task, 5) for i in range(15)]# 五,在此阻塞,等所有协程全部完成退出,这一步才执行完
gevent.joinall(threads)

以上demo代码,就实现了:

最大并发数20,超过20个并发,排队等待;

上述代码中,单个协程耗时五秒,那么并发15个,全部耗时,应该也是5秒多一点点。

加入一个时间,来看看是不是真的。比如:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import time
import gevent
from gevent.pool import Pool
from gevent import monkey
# 一,定义最大并发数
p = Pool(20)
# 二,导入gevent猴子补丁,没有它,协称就不会并发执行monkey.patch_all()#  三,耗时任务或者阻塞任务,异步执行的或者需要并发的就是它了
def task(i):time.sleep(i)print("----这里---------")time_l=time.time()
# 四,任务派发,将15个任务派发给携程去做
threads = [p.spawn(task, 5) for i in range(15)]# 五,在此阻塞,等所有协程全部完成退出,这一步才执行完
gevent.joinall(threads)time_r=time.time()
print("总耗时:{}".format(time_r-time_l))

执行结果:

----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
----这里---------
总耗时:5.004504919052124

Process finished with exit code 0

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/138335.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】华为云服务器安装 Docker 容器

简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机…

知识图谱基本工具Neo4j使用笔记 五 :APOC插件安装及简单应用

文章目录 一、使用场景二、系统说明三、配置安装1. 插件下载2. 文件下载说明3. 版本对应4. 安装位置5. 修改配置文件6. 注意问题7. web端启动:测试 四、简单应用1. 编辑距离2. 基于编辑距离的相似度3. 模糊匹配 一、使用场景 APOC(Awesome Procedures o…

基于movie lens-100k数据集的协同过滤算法实现

基于movie lens-100k数据集的协同过滤算法实现 数据集处理 基于用户的协同过滤算法的实现 基于物品的协同过滤算法的实现 数据集处理 import pandas as pdu_data pd.read_csv(D:/PyCharmWorkSpace/ml-100k/ml-100k/u.data) u_genre pd.read_csv(D:/PyCharmWorkSpace/ml-10…

如何批量为文件夹命名

如果你想要命名一些这样名字具有规律性的文件夹,当文件的数量增多,一个一个命名是非常耗费时间的。很容易想到,如果使用EXCEL,只需往下拉,就能很轻松的拉出1到5。那么,我们如何利用EXCEL来对文件夹进行快速…

LazadaAPI接口解析,实现获得lazada商品评论列表

Lazada是一个流行的跨境电商平台,它提供了API接口供开发者使用。要获取Lazada商品评论列表,您需要使用Lazada API接口并进行相应的请求。 以下是使用Lazada API接口获取商品评论列表的示例代码(使用Python编写): pyth…

【Linux】系统编程线程互斥与同步(C++)

目录 【1】线程互斥 【1.1】进程线程间的互斥相关背景概念 【1.2】互斥量mutex 【1.3】互斥量实现原理探究 【1.4】RAII的加锁风格 【2】可重入VS线程安全 【2.1】概念 【2.2】常见的线程不安全的情况 【2.3】常见的线程安全的情况 【2.4】常见不可重入的情况 【2.5…

无线定位中TDOA时延估计算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...................................................................figure; plot(P1x,P1y…

【Graph Net学习】LINE实现Graph Embedding

一、简介 LINE (Large-scale Information Network Embedding,2015) 是一种设计用于处理大规模信息网络的算法。它主要的目标是在给定的大规模信息网络中学习高质量的节点嵌入,并尽量保留网络中信息的丰富性。其具体的表现为在一个低 维空间里以向量形式表示网络中的…

华为云云耀云服务器L实例评测|华为云上安装监控服务Prometheus三件套安装

文章目录 华为云云耀云服务器L实例评测|华为云上试用监控服务Prometheus一、监控服务Prometheus三件套介绍二、华为云主机准备三、Prometheus安装四、Grafana安装五、alertmanager安装六、三个服务的启停管理1. Prometheus、Alertmanager 和 Grafana 启动顺序2. 使用…

mysql workbench常用操作

1、No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 方法一:双击你要使用的库 方法二:USE 数据库名 2、复制表名,字段名 3、保存链接

折线图geom_line()参数选项

往期折线图教程 图形复现| 使用R语言绘制折线图折线图指定位置标记折线图形状更改 | 绘制动态折线图跟着NC学作图 | 使用python绘制折线图 前言 我们折线的专栏推出一段时间,但是由于个人的原因,一直未进行更新。那么今天,我们也参考《R语…

Kafka-UI

有多款kafka管理应用,目前选择的是github上star最多的UI for Apache Kafka。 关于 To run UI for Apache Kafka, you can use either a pre-built Docker image or build it (or a jar file) yourself. UI for Apache Kafka is a versatile, fast, and lightweight…

关于ABB机器人的IO创建和设置

首先要链接网线,请求写权限 关于ABB机器人的默认地址位10有的是63.31看你硬接线 ABB机器人分配好信号机器人控制柜要重启 可以把机器人分配的信号导出为EIO 类似与发那科机器人IO

Spring底层原理之 BeanFactory 与 ApplicationContext

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 Spring底层原理 一、 BeanFactory 与 Appli…

ChatGPT追祖寻宗:GPT-3技术报告要点解读

论文地址:https://arxiv.org/abs/2005.14165 往期相关文章: ChatGPT追祖寻宗:GPT-1论文要点解读_五点钟科技的博客-CSDN博客ChatGPT追祖寻宗:GPT-2论文要点解读_五点钟科技的博客-CSDN博客 本文的标题之所以取名技术报告而不是论文…

无法删除目录(设备或资源忙)

文章目录 无法删除目录(设备或资源忙)问题原因解决方案步骤一:首先找到挂载的位置步骤二:取消挂载步骤三:查看挂在情况 无法删除目录(设备或资源忙) 问题 原因 网络共享挂载导致无法删除 解决…

C++实现观察者模式(包含源码)

文章目录 观察者模式一、基本概念二、实现方式三、角色四、过程五、结构图六、构建思路七、完整代码 观察者模式 一、基本概念 观察者模式(又被称为模型(Model)-视图(View)模式)是软件设计模式的一种。在…

Twitter图片数据优化的细节

Twitter个人数据优化:吸引更多关注和互动 头像照片在Twitter上,头像照片是最快识别一个账号的方法之一。因此,请务必使用公司的标志或与品牌相关的图片。建议尺寸为400x400像素。 为了建立强大的品牌形象和一致性,强烈建议在所有…

Spring MVC常见面试题

Spring MVC简介 Spring MVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。简单来说,Spring MVC整合了前端请求的处理及响应。 Servlet 是运行在 Web 服务器或应用…

Xcode 15 运行<iOS 14, 启动崩溃问题

如题. Xcode 15 启动 < iOS 14(没具体验证过, 我的问题设备是iOS 13.7)真机设备 出现启动崩溃 解决方案: Build Settings -> Other Linker Flags -> Add -> -ld64