如何在python中多线程化类的功能

时间:2018-04-12 07:27:47

标签: python multithreading

我有一个名为OlxScraper的类,它包含一个方法调用fetch_all_pages,它将URL作为输入并获取链接中的所有链接和链接,然后将它们放入数据库中。

我有一个包含40,000个URL的列表。这就是我现在正在做的事情:

list = [contain 40,000 urls]
olx = OlxScraper()
for li in list:
    olx.fetch_all_pages(li)

我有一个高速以太网VPS,基本上我想一次从列表中获取多个链接。我希望同时运行10个线程,每个线程应该从列表中获取10个url,然后运行olx.fetch_all_pages

我该怎么做..?

1 个答案:

答案 0 :(得分:1)

查看multiprocessing模块。 Pool可以很好地完成您的任务,因此您的代码可能如下所示:

from multiprocessing import Pool

olx = OlxScraper()

parallel_workers = 10
p = Pool(parallel_workers)
p.map(olx.fetch_all_pages, list_of_urls)