知行编程网知行编程网  2022-11-05 13:00 知行编程网 隐藏边栏  86 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python中异步非阻塞如何实现的相关知识,希望可以帮到处于编程学习途中的小伙伴

如何在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电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享