python异步线程,实现协程操作

  •  单个方法简单实现异步 async
    # 引入 asyncio 模块才能执行协程函数
    import asyncio
    #使用 async 关键字将函数定义为协程函数
    async def func():
        print("Hello World~~~~")
    
    if __name__=='__main__':
        g = func() # 此时的 func() 是异步协程函数, 函数执行得到的是一个协程对象
        print("~~~~~~~~~~~~~~~")
        asyncio.run(g)  # 协程模块需要 asyncio 的支持

     

  • 多个异步方法实现协程操作
    # 执行异步函数引入 asyncio
    import asyncio
    # 时间
    import time
    
    async def func1():
        print("func1")
        # 当程序出现同步操作的时候,异步就中断了    request.get() 也是同步操作
        #time.sleep(3)
        # 异步操作的代码 使用asyncio的异步sleep 并且使用await关键字挂起
        await asyncio.sleep(3)
        print("func1 over!")
    
    async def func2():
        print("func2")
        #time.sleep(2) 同func1换用 异步sleep
        await asyncio.sleep(2)
        print("func2 over!")
    
    if __name__ == '__main__':
        f1 = func1()
        f2 = func2()
        tasks = [f1, f2]
        t1 = time.time()
        # 一次性启动多个协程任务
        asyncio.run(asyncio.wait(tasks))
        t2 = time.time()
        print(t2 - t1)

     

posted @ 2022-05-11 13:28  不要西红柿  阅读(229)  评论(0编辑  收藏  举报