# 简单的多任务异步协程
import asyncio
import time
from pip import main
async def func1():
print("你好啊,我叫李雪琴")
await asyncio.sleep(3)
print("你好啊,我叫李雪琴")
async def func2():
print("你好啊,我叫潘金莲")
await asyncio.sleep(3)
print("你好啊,我叫潘金莲")
async def func3():
print("你好啊,我叫胡润东")
await asyncio.sleep(3)
print("你好啊,我叫胡润东")
main
if __name__ == "__main__":
f1 = func1()
f2 = func2()
f3 = func3()
tasks = [f1, f2, f3]
t1 = time.time()
asyncio.run(asyncio.wait(tasks))
t2 = time.time()
print(t2-t1)
问题总结:
1.await asyncio.sleep(3),涉及IO操作时,在IO操作前加await asyncio
2.异步调用一个函数要用 asyncio.run(func()),多个要asyncio.run(asyncio.wait(tasks))
另一种写法:
# 另一种写法的多任务异步协程
import asyncio
import time
async def func1():
print("你好啊,我叫李雪琴")
await asyncio.sleep(3)
print("你好啊,我叫李雪琴")
async def func2():
print("你好啊,我叫潘金莲")
await asyncio.sleep(3)
print("你好啊,我叫潘金莲")
async def func3():
print("你好啊,我叫胡润东")
await asyncio.sleep(3)
print("你好啊,我叫胡润东")
async def main():
# f1 = func1()
# await f1 这种写法不推荐
# 第二种推荐
tasks = [func1(), func2(), func3()]
await asyncio.wait(tasks)
if __name__ == "__main__":
asyncio.run(main())