3

我想向单个服务器发出 1000 个请求。

我使用线程模块,但服务器阻止了我。

如何设置一次只运行最多 10 个线程的线程(形成 1000 个列表)?

4

3 回答 3

10

使用线程池。Doug Hellman 的优秀线程文章中有一个线程池示例

于 2013-10-27T15:58:20.000 回答
7

处理模块提供了一个未记录的 ThreadPool 实现,其 API 与其多处理池 API 相同:

import multiprocessing.pool as mpool

def worker(url):
    # process url

pool = mpool.ThreadPool(10)
for url in tasks:
    pool.apply_async(target=worker, args=(url, ))
于 2013-10-27T16:00:54.903 回答
3

一种方法是使用线程池/工作者模式。

于 2013-10-27T15:58:00.033 回答