Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在进程内共享Python池_Python_Python Multiprocessing - Fatal编程技术网

在进程内共享Python池

在进程内共享Python池,python,python-multiprocessing,Python,Python Multiprocessing,你好 我有一个看起来有点像这样的实现:本质上是一个多进程web爬虫 pool = Pool() def worker: link = get_url() pool.async(worker, args=(link,)) pool.async(worker,args=("www.url.com",)) 不幸的是,这不起作用,因为工作进程正在运行的进程似乎无法重新访问原始池,并且崩溃了。有什么办法可以解决这个问题吗?那么这个程序会在树结构中增加许多进程吗?如果您从每个顶级url

你好

我有一个看起来有点像这样的实现:本质上是一个多进程web爬虫

pool = Pool()

def worker:
    link = get_url()
    pool.async(worker, args=(link,))

pool.async(worker,args=("www.url.com",))

不幸的是,这不起作用,因为工作进程正在运行的进程似乎无法重新访问原始池,并且崩溃了。有什么办法可以解决这个问题吗?

那么这个程序会在树结构中增加许多进程吗?如果您从每个顶级url获得多个链接,那么在每个级别都需要一个Pool()。如果你一次只做一个深度,那么你可以不用多重处理,每次只做一个深度。不会的。它基本上是在同一个池中添加一个“作业”,不是吗?我不希望每个级别都有一个池,但看起来您是在递归调用worker函数。每次新的辅助函数启动时,它都会向池中添加一个新的辅助函数。如果你得到get_url()的结果并从你的工作者那里返回它,那么你就有一个新的链接要添加到函数外的池中。问题是这无论如何都不起作用。我决定重新设计我的程序。使多个进程从公共队列读取数据