【问题标题】:using threading for multiple requests对多个请求使用线程
【发布时间】:2023-03-08 06:53:01
【问题描述】:

为了测试我们的服务器,我们设计了一个测试,它使用 JSON 负载发送大量请求,并比较它返回的响应。

我目前正在尝试通过使用多线程来优化流程。我没有找到解决我面临的问题的任何方法。

我有一个 url 地址和一堆 JSON 文件(这些文件保存请求,每个请求文件都有一个“预期响应”JSON 来比较响应)。 我想使用多线程来发送所有这些请求,并且仍然能够将我返回的响应与我发送的请求相匹配。

有什么想法吗?

【问题讨论】:

  • 你可以使用communicate()
  • @MaheshKaria 你能扩展一下吗?

标签: python multithreading python-2.7 asynchronous


【解决方案1】:

嗯,你有几个选择:

  1. 使用multiprocessing.pool.ThreadPool (Python 2.7) 创建线程池,然后将它们用于分派请求。如果您想发出异步请求,map_async 可能会在这里感兴趣,
  2. 使用 concurrent.futures.ThreadPoolExecutor (Python 3) 与 ThreadPool 池的类似工作方式,但它用于异步执行可调用对象,
  3. 您甚至可以选择使用 multiprocessing.Pool,但我不确定这是否会给您带来任何好处,因为您所做的一切都是 I/O 绑定的,所以线程应该可以正常工作,
  4. 您可以使用 Twistedasyncio 发出异步请求,但如果您不习惯异步编程,则可能需要更多学习。

【讨论】:

    【解决方案2】:

    使用python multiprocessingthreadpool可以得到return value可以比较。

    https://docs.python.org/2/library/multiprocessing.html https://gist.github.com/wrunk/b689be4b59270c32441c

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多