python asyncio wait和gather
2024-10-18 23:39:24
1. wait, 等待某某执行完成以后才执行下一步
FIRST_COMPLETED = concurrent.futures.FIRST_COMPLETED
FIRST_EXCEPTION = concurrent.futures.FIRST_EXCEPTION
ALL_COMPLETED = concurrent.futures.ALL_COMPLETED
import asyncio
import time
async def get_html(term):
print("start get url")
await asyncio.sleep(term)
print("end get url") if __name__ == '__main__':
group1 = [get_html(i) for i in range(10)]
loop = asyncio.get_event_loop()
import concurrent.futures
loop.run_until_complete(asyncio.wait(group1, return_when=concurrent.futures.FIRST_COMPLETED))
print(1)
2. gather 比wait更加高级,可以将任务分组,并且取消掉,取消时,必须设置 return_exception为True,不然会抛异常
import asyncio
import time
async def get_html(url):
print("start get url")
await asyncio.sleep(2)
print("end get url") if __name__ == "__main__":
start_time = time.time()
loop = asyncio.get_event_loop()
#gather和wait的区别
#gather更加high-level
group1 = [get_html("http://projectsedu.com") for i in range(2)] # 分组
group2 = [get_html("http://www.imooc.com") for i in range(2)]
group1 = asyncio.gather(*group1)
group2 = asyncio.gather(*group2)
group2.cancel()
loop.run_until_complete(asyncio.gather(group1, group2, return_exceptions=True))
print(time.time() - start_time)
最新文章
- Android-Spinner [使用C# And Java实现]
- C# WinForm 技巧十: 开发工具
- 图解HTTP看书体会(1)
- kuangbin_ShortPath G (POJ 1502)
- Codeforces Round #313 (Div. 2) D.Equivalent Strings (字符串)
- C#调用PowerShell脚本
- 考查嵌入式C开发人员的最好的16道题
- MVC3 带查询的分页Helper
- Angular - - angular.forEach、angular.extend
- 利用gulp搭建简单服务器,gulp标准版
- 【Maven】添加ueditor到maven本地仓库
- java web面试题
- ImportError: No module named simplejson.scanner
- HTML5:链接与路径
- mino federation 功能
- CCCC 成都信息工程大学游记
- pythonNET day05
- Java Web 从入门到精通(明日科技)
- 程序中判断android系统版本
- Java BigInteger 与C# BigInteger之间的问题
热门文章
- 爬取bilibili首页菜单获取li内容
- Solr java.sql.SQLException: null, message from server: ";Host 'xxx' is not allowed to connect to this MySQL server
- 20个Python代码段,你需要立刻学会,好用到哭!
- FCC---Animate Elements at Variable Rates----一闪一闪亮晶晶,不同的闪动节奏
- awk 输出前 N 列的最简单方法
- jquery-uploadfile的使用(多文件异步上传)
- JavaScript初探 四 (程序结构)
- [20190522]DISABLE TABLE LOCK.txt
- emacs 缩进
- [Go] gocron源码阅读-判断是否使用root用户执行