【问题标题】:Are most http requests synchronous by default?默认情况下大多数http请求是同步的吗?
【发布时间】:2014-07-25 01:08:16
【问题描述】:

http请求的大部分函数默认是同步的吗?

我来自 Javascript 和 AJAX 的使用,刚刚开始在 Python 中处理 http 请求。令我惊讶的是,默认情况下,http 请求函数似乎是同步的,所以我不需要处理任何异步行为。例如,我正在使用Requests http 库,虽然文档没有明确说明 http 请求是否同步,但通过我自己的测试,调用似乎是同步的。

那么大多数http请求在本质上是默认同步的,还是大多数函数都是这样设计的?而我对 http 请求(JS AJAX)的第一次体验恰好是异步的?

【问题讨论】:

  • 取决于库。我想会有更多的异步调用——但这就是编程的本质(和“发生在之前”)。虽然某些语言/运行时只有有异步 I/O。
  • 有很多同步的http库。也有很多异步的。我不确定是否有人真的知道哪个更多。
  • @dano 啊,好的。我认为这实际上是一个很好的答案,从概念上讲清楚了。

标签: javascript python http asynchronous synchronous


【解决方案1】:

这是语言,在python中大多数api默认是同步的,异步版本通常是一个“高级”主题。如果您使用的是 nodejs,它们将是异步的;即使使用 javascript,ajax 之所以是异步的,也是因为浏览器的特性。

【讨论】:

    【解决方案2】:

    requests 完全同步/阻塞。 grequests 就是你要找的东西:

    GRequests 允许您将 Requests 与 Gevent 一起使用以进行异步 HTTP 请求很容易。

    另见:

    【讨论】:

    • 啊,是的,我注意到了那个库,但认为它似乎“采取了额外的步骤”来实现异步。感谢您为我指明方向
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2019-05-21
    • 2020-10-31
    相关资源
    最近更新 更多