导语:
本文主要介绍了关于python中异步非阻塞如何实现的相关知识,希望可以帮到处于编程学习途中的小伙伴
说明
1. 发出异步过程调用时,调用者不会立即得到结果。
真正处理调用的部分是通过状态、通知等方式通知调用者,或者在调用完成后通过回调函数处理调用。
2、非阻塞是指函数不会阻塞当前线程,直到不能立即得到结果,而是立即返回。
实例
from time import time, sleep
"""
同步操作
"""
def app01():
def fn1():
sleep(3)
print("fn1 ...")
def fn2():
sleep(2)
print("fn2 ...")
def fn3():
sleep(5)
print("fn3 ...")
fn1()
fn2()
fn3()
"""
asyncio
"""
def app02():
import asyncio
async def fn1():
await asyncio.sleep(3)
print("fn1 ...")
async def fn2():
await asyncio.sleep(2)
print("fn2 ...")
async def fn3():
await asyncio.sleep(5)
print("fn3 ...")
loop = asyncio.get_event_loop()
tasks = [
fn1(),
fn2(),
fn3()
]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
if __name__ == '__main__':
startTime = time()
# app01()
app02()
endTime = time()
print('花费了', str(endTime - startTime), '秒')
# 第一个 10s
# 第二个 5s
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python函数中传递参数位置10/10
- ♥ python3中如何判断是否为数字10/26
- ♥ python中如何使用XPath爬取小说12/15
- ♥ python安装32位或64位08/29
- ♥ 如何在python中找到几个数字的最大值08/21
- ♥ Python地图接收参数探索01/08
内容反馈