asyncio
正如官方文档所说, asyncio-Asynchronous I/O, event loop, coroutines and tasks. This module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O.是一个异步高并发的模块
async/await是python3.5用于定义协程的关键字,async定义一个协程, await用于
挂起阻塞的异步调用接口
version >= 3.7
demo1.py
import time
import asyncio
async def crawl_page(url):
print('crawling {}'.format(url))
sleep_time = int(url.split('_')[-1])
await asyncio.sleep(sleep_time)
print('OK {}'.format(url))
async def main(urls):
for url in urls:
# await是同步调用, crawl_page(url)在当前的调用结束之前, 是不会触发下一次调用的
await crawl_page(url)
start = time.perf_counter()
asyncio.run(main(['url_1', 'url_2', 'url_3', 'url_4']))
end = time.perf_counter()
print(end