如何在我的代码中使用多处理/多线程处理?

2024-04-26 04:41:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用下面的代码来创建一个包含100000个键和值的字典…我想通过多处理/多线程处理使它更快,因为每个循环都独立于另一个循环。有谁能告诉我如何应用,哪一种(多处理/多线程)更适合这种方法

from urlparse import urlparse

ProcessAllURLs(URLs)

ProcessAllURLs(URLs)
def ProcessAllURLs(URLs):
    for eachurl in URLs:
            x=urlparse(eachurl)
            print eachurl.netloc

谢谢


Tags: 方法代码infromimportfor字典def
2条回答

我推荐Python's multiprocessing library。尤其是研究the section labeled "Using a pool of workers"。重新编写上面的代码应该很快,这样它就可以使用系统的所有可用核心。在

不过,有一个提示:不要打印池工作人员的url。最好将答案返回到主进程,并将它们聚集在那里进行打印。来自不同进程的打印将导致大量混乱、不协调的控制台输出。在

多处理库可能是最好的例子。看起来您的代码可以重写为:

from urlparse import urlparse

nprocs = 2 # nprocs is the number of processes to run
ParsePool = Pool(nprocs)
ParsedURLS = ParsePool.map(urlparse,URLS)

map函数与内置map函数相同,但为每个函数调用运行一个单独的进程。在

有关多处理的详细信息,请参见http://docs.python.org/library/multiprocessing.html。在

相关问题 更多 >

    热门问题