• 技术文章 >Python技术 >Python基础教程

    python中异步非阻塞如何实现

    小妮浅浅小妮浅浅2021-08-04 10:04:12原创6258

    说明

    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

    以上就是python中异步非阻塞的实现,希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python异步
    上一篇:python引用计数机制的使用 下一篇:python实例方法中self的作用

    相关文章推荐

    • python中__init__ 和__new__的对比• python中__call__的触发执行• python中__enter__和__exit__的应用场景• python中类对象及类属性的介绍• python类实例化如何实现• python实例属性的查找顺序• python保护变量是什么• python私有方法的使用注意• python析构函数如何使用• python协程和线程的差异• python库如何实现对象的转换• python中marshmallow库如何使用• python dump方法的序列化• python使用required定义必填字段• python marshmallow如何提供默认值• python中filter()的多种筛选• python中apply和transform的比较• Python如何提取字符串的内容• Python findall函数如何匹配字符串• Python中SKlearn是什么• SKlearn如何在python安装?• python打开文件的两种方式• python按行读取文件的方法比较

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网