用 ThreadPool.map()
from multiprocessing.pool import ThreadPool
pool = ThreadPool(10) # 线程可以多一些,不是大问题。
urls = range(100)
def fetch(url):
return url ** 2
results = pool.map(fetch, urls)
print(results)
注意 fetch() 里面不要抛异常。除了 map(),还有 imap(), imap_unordered(),你可以自己看文档。
【 在 illers 的大作中提到: 】
: 假设需要做100个post请求,url和参数放在一个列表中。最后返回这100和请求的结果。
: 我现在是顺序执行,for循环获取参数。
: 怎么写多线程呢,一次跑5个url,这样效率会好很多
: ...................
--
修改:hgoldfish FROM 183.253.147.*
FROM 183.253.147.*