我想向单个服务员提出1000个请求。
我使用线程模块但服务器阻止我。
如何设置一次仅运行最多10个线程的线程(形成1000个列表)?
答案 0 :(得分:7)
使用线程池。 Doug Hellman的优秀thread pooling example中有一个threading article。
答案 1 :(得分:5)
multiprocessing module提供了一个未记录的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, ))
答案 2 :(得分:3)
一种方法是使用thread pool /工人模式。