"""
定义:
异步编程asyncio
一、如何定义协程函数? 如下
async def 函数名():
"""
from time import sleep, perf_counter
async def req():
return "返回结果";
# print(req())
"""
输出结果是: <coroutine object req at 0x122557240>
调用协程函数 发现返回的并不是 一个字符串结果,
而是一个协程对象,也就是说还没有执行代码,运行使用协程对象时才会执行代码
协程有一个特点就是如下:
1、可以暂停执行 2、也可以恢复执行
1、当执行await时 会暂停执行 让出控制权
2、等await后面的代码执行完毕后,再请求控制权,恢复执行
拥有控制权的协程能运行,没有控制权的协程只能等待
"""
"""
二、案例 同步执行案例
"""
def fetch_url(url):#请求url 模拟网络请求
print("开始执行 fetch_url")
sleep(1)
print("完成执行 fetch_url")
return "url_content";
def read_file(file_path): #读取文件 模拟文件读取
print("开始执行 read_file")
sleep(1)
print("完成执行 read_file")
return "file_content"
def main():
url="www.baidu.com"
file_path="./test.txt"
url_content=fetch_url(url)
file_content=read_file(file_path)
if __name__ == '__main__':
#记录执行时间
start_time=perf_counter() # 记录开始时间
main()
end_time=perf_counter() # 记录结束时间
print("执行时间:",end_time-start_time)
"""
输出结果如下: 可以看待按照顺序执行的,先执行fetch_url函数 在执行read_file函数
开始执行 fetch_url
完成执行 fetch_url
开始执行 read_file
完成执行 read_file
执行时间: 2.00699375
"""