# 初识异步
# 看到一篇比较好的关于同步与异步的理论:
# https://blog.csdn.net/DD18203614685/article/details/93226319
from time import sleep, time
import asyncio
def print_word(word):
print(word)
sleep(1)
def _test():
t1 = time()
print_word("你好世界")
print_word("你好中国")
t2 = time()
print(t2 - t1)
async def print_word2(word):
"""
使用async关键字可以将普通函数变成协程
协程在使用的时候,必须前面加上await关键字
:param word:
:return:
"""
print(word)
await asyncio.sleep(1) # await关键字只有在async函数中才能使用
async def async_test2():
"""
协程默认会从上往下运行,遇到await会等待
:return:
"""
t1 = time()
await print_word2("你好世界")
await print_word2("你好中国")
t2 = time()
print(t2 - t1)
async def async_test3():
"""
如果想要使用协程,必须要放到asyncio的事件循环中运行.
想要实现并发操作,需要将协程变成任务的方式去执行。
:return:
"""
t1 = time()
task1 = asyncio.create_task(print_word2("你好世界"))
task2 = asyncio.create_task(print_word2("你好世界"))
await task1
await task2
t2 = time()
print(t2 - t1)
if __name__ == '__main__':
print("============普通方式============")
_test()
print("============普通方式============")
print("============协程,顺序执行============")
asyncio.run(async_test2())
print("============协程,顺序执行============")
print("============协程,异步执行============")
asyncio.run(async_test3())
print("============协程,异步执行============")
初识异步
最新推荐文章于 2024-06-19 14:18:05 发布