asyncio 模块官网连接:https://docs.python.org/zh-cn/3.7/library/asyncio.html
同步原语参考链接:https://mozillazg.com/2017/08/python-asyncio-note-synchronization-primitives.html
异步参考:http://python.jobbole.com/88291/
http://python.jobbole.com/87310/
http://python.jobbole.com/87541/
asyncio.gather
and
asyncio.wait
的区别:https://stackoverflow.com/questions/42231161/asyncio-gather-vs-asyncio-wait
aiohttp官网:https://aiohttp.readthedocs.io/en/stable/
aiohttp github:https://github.com/aio-libs/aiohttp
asyncio 系列一、asyncio 的协程与任务:
https://blog.csdn.net/duxin_csdn/article/details/90517462
asyncio 系列二、asyncio 子进程:
https://blog.csdn.net/duxin_csdn/article/details/90517648
asyncio 系列三、asyncio 队列
https://blog.csdn.net/duxin_csdn/article/details/90517781
asyncio 系列四、asyncio 的异常
https://blog.csdn.net/duxin_csdn/article/details/90517884
asyncio 系列四、期程 — asyncio.Future
https://blog.csdn.net/duxin_csdn/article/details/90518231
asyncio 系列五、同步原语—Synchronization Primitives
https://blog.csdn.net/duxin_csdn/article/details/90518304
此外,asyncio还可以创建一个tcp、udp的服务器模型,参见官网连接:https://docs.python.org/zh-cn/3.7/library/asyncio-stream.html
创建http协议的服务器模型的话,需要aiohttp模块,参见aiohttp官网:https://aiohttp.readthedocs.io/en/stable/
官网例子:
服务端:
from aiohttp import web
async def handle(request):
name = request.match_info.get('name', "Anonymous")
text = "Hello, " + name
return web.Response(text=text)
app = web.Application()
app.add_routes([web.get('/', handle),
web.get('/{name}', handle)])
web.run_app(app)
客户端:
import aiohttp
import asyncio
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with aiohttp.ClientSession() as session:
html = await fetch(session, 'http://python.org')
print(html)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())