为多个请求使用线程

时间:2018-02-20 08:13:49

标签: python multithreading python-2.7 asynchronous

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

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

我有一个网址和一堆JSON文件(这些文件包含请求,每个请求文件都有一个预期的响应' JSON来比较响应)。 我想使用多线程来发送所有这些请求,但仍然能够匹配我收到的请求的响应。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

嗯,你有几个选择:

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

答案 1 :(得分:0)