python中异步非阻塞如何实现
发布时间:2024-07-21 20:16:48

说明
1、异步调用发出后,调用者不会立即得到结果。
调用部件的实际处理是在调用发出后,通过状态、通知通知调用者,或者通过回调函数处理调用。
2、非阻塞意味着函数不会阻塞当前线程,而是会在不能立即得到结果之前立即返回。
实例
fromtimeimporttime,sleep
"""
同步操作
"""
defapp01():
deffn1():
sleep(3)
print("fn1...")
deffn2():
sleep(2)
print("fn2...")
deffn3():
sleep(5)
print("fn3...")
fn1()
fn2()
fn3()
"""
asyncio
"""
defapp02():
importasyncio
asyncdefn1():
awaitasyncio.sleep(3)
print("fn1...")
asyncdefn2():
awaitasyncio.sleep(2)
print("fn2...")
asyncdefn3():
awaitasyncio.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以上是python中异步非阻塞的实现,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。
下一篇 python引用计数机制的使用
