创新互联Python教程:python中异步非阻塞如何实现

说明

10年的赤城网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整赤城建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“赤城网站设计”,“赤城网站推广”以来,每个客户项目都认真落实执行。

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中异步非阻塞如何实现
当前URL:http://www.shufengxianlan.com/qtweb/news26/51576.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联