python之asyncio三种应用方法
1、直接使用asyncio.run方法
2、同步的效果,用await调用函数
3、创建任务(asyncio.create_task),并发运行任务(await asyncio.gather)
import asyncio #第一种
async def aa():
print("我们的门又坏了")
await asyncio.sleep(2)
print("怎么办啊")
asyncio.run(aa())
# 第二种 同步的效果 async def fun1():
print("增强体育锻炼,提高免疫力")
await asyncio.sleep(3)
print("才能保证身体健康,诸事顺利")
async def fun2():
await asyncio.sleep(5)
print("这个周末天气不错")
await asyncio.sleep(8)
print("可是你就是不想出去")
async def min():
await fun1()
await fun2()
if __name__ == "__main__":
asyncio.run(min()) # # 第三种并发
# 吃鱼丸
arr = []
async def produce():
for i in range(100):
await asyncio.sleep(1)
arr.append(i)
print("小明放了一个鱼丸,现在锅里还有%s个鱼丸"%len(arr))
async def consumer():
while True:
await asyncio.sleep(2) #很关键
if len(arr)>=10: #各一个判断条件
arr.pop()
print("mony吃了一个鱼丸,现在锅里还有%s个鱼丸"%len(arr))
async def main():
t1 = asyncio.create_task(produce()) #创建任务
t2 = asyncio.create_task(consumer())
await asyncio.gather(t1,t2) #并发运行任务
asyncio.run(main()) #调用函数main()
python之asyncio三种应用方法的更多相关文章
- Python队列的三种队列方法
今天讲一下队列,用到一个python自带的库,queue 队列的三种方法有: 1.FIFO先入先出队列(Queue) 2.LIFO后入先出队列(LifoQueue) 3.优先级队列(PriorityQ ...
- python之selenium三种等待方法
前提: 我们在做Web自动化时,有的时候要等待元素加载出来,才能操作,不然会报错 1.强制等待 2.隐式等待 3.显示等待 内容: 一,强制等待 这个比较简单,就是利用time模块的sleep的方法来 ...
- python—字符串拼接三种方法
python—字符串拼接三种方法 1.使用加号(+)号进行拼接 字符串拼接直接进行相加就可以,比较容易理解,但是一定要记得,变量直接相加,不是变量就要用引号引起来,不然会出错,另外数字是要转换为字 ...
- Python+Selenium自动化-设置等待三种等待方法
Python+Selenium自动化-设置等待三种等待方法 如果遇到使用ajax加载的网页,页面元素可能不是同时加载出来的,这个时候,就需要我们通过设置一个等待条件,等待页面元素加载完成,避免出现 ...
- javase-常用三种遍历方法
javase-常用三种遍历方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; public ...
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- Java中Map的三种遍历方法
Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历. 告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...
- Jquery中each的三种遍历方法
Jquery中each的三种遍历方法 $.post("urladdr", { "data" : "data" }, function(dat ...
- spring与mybatis三种整合方法
spring与mybatis三种整合方法 本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接 http://code.googl ...
随机推荐
- P1772 [ZJOI2006]物流运输
题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...
- LR参数化取值规则总结
我想使用参数化输入设置10个并发用户循环1000次,第一个用户使用参数列表中的前1000个参数(第依次循环使用第一个参数.第二次循环使用第二个参数,依次类推).第二个用户使用参数列表中的2001-30 ...
- cookiejar
referer:https://www.cnblogs.com/why957/p/9297779.html文章介绍了四种模拟登陆方法 yield Request()可以将一个新的请求返回给爬虫执行 在 ...
- mac系统如何处理来自身份不明的开发者
打开终端(终端在 应用程序 -> 实用工具 内) sudo spctl --master-disable
- linux用户键拷贝文件
如果A用户没有权限写B用户下面的文件,可以用这个命令拷贝 scp AAA.tar.gz B用户名@IP:全路径
- prometheus监控
一. 部署prometheus 1.1 下载 wget https://github.com/prometheus/prometheus/releases/download/v2.7.1/promet ...
- ECS上nginx搭建反向代理通过内网访问阿里云OSS服务
对于付不起钱的小伙计,为了给公司省钱,想尽一切招数.今天就来分享一个使用阿里云OSS存储搭配CDN使用的网站服务器部署方法. 简介 阿里云OSS 阿里云提供的一种文件存储方案,和我们以前接触的百度云B ...
- JS引擎的执行机制:探究EventLoop(含Macro Task和Micro Task)
在我看来理解好JS引擎的执行机制对于理解JS引擎至关重要,今天将要好好梳理下JS引擎的执行机制. 首先解释下题目中的名词:(阅读本文后你会对这些概念掌握了解) Event Loop:事件循环Micro ...
- 02_计算机网络的OSI七层(应表会传网数物)
七层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 五层: 应用层 传输层 网络层 数据链路层 物理层 四层: 应用层 传输层 网络层 数据接口层 一.物理层(Physical Lay ...
- Java基础学习-Eclipse综述和运算符的使用
1.Eclipse的概述(磨刀不误砍柴工) -Eclipse是一个IDE(集成开发环境) -IDE(Intergrated Development Environment) ...