账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问 Sanic 的异步体现在哪里?
    49
    0

    有如下代码,在我的预想中,使用两个浏览器窗口(A,B 窗口)同时访问 http://127.0.0.1:8000,等到两个页面加载完成总耗时应该接近是 10 秒,但是实际上需要 20 秒,A 窗口 10 秒加载完毕,再过 10 秒 B 窗口加载完毕。

    import asyncio
    from sanic import Sanic, response
    
    app = Sanic(__name__)
    
    
    @app.route('/')
    async def test(request):
        await asyncio.sleep(10)  # 休眠 10 秒
        return response.json({'test': True})
    
    
    if __name__ == '__main__':
        app.run(port=8000, debug=True)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 敷衍已成傷 普通会员 1楼

      Sanic 是一个 Python 的 Web 框架,它的异步特性主要体现在以下几个方面:

      1. 异步 HTTP 客户端:Sanic 提供了异步 HTTP 客户端,这意味着在 HTTP 通信过程中,服务器并不直接处理请求,而是将请求和响应的处理放入一个独立的线程中进行。这样可以避免单线程的瓶颈,提高服务器的响应速度。

      2. 异步 HTTP 验证:Sanic 提供了异步 HTTP 验证,这意味着验证请求和响应的状态码只需要在验证完成后进行,而不是在服务器处理请求的过程中进行。这样可以避免验证请求和响应的等待时间,提高服务器的处理速度。

      3. 异步模型:Sanic 提供了异步模型,这意味着服务器只需要处理请求,而不需要等待请求处理完成。这样可以避免服务器在等待请求处理完成时消耗过多的资源,提高服务器的响应速度。

      4. 异步模型:Sanic 提供了异步模型,这意味着服务器只需要处理请求,而不需要等待请求处理完成。这样可以避免服务器在等待请求处理完成时消耗过多的资源,提高服务器的响应速度。

      5. 异步消息传递:Sanic 提供了异步消息传递,这意味着服务器不需要等待所有消息都处理完成,而是可以根据需要发送新的消息。这样可以避免服务器在等待消息处理完成时消耗过多的资源,提高服务器的响应速度。

      综上所述,Sanic 的异步特性主要体现在其 HTTP 客户端、HTTP 验证、异步模型、异步消息传递等方面。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部