我正在尝试在Python中使用多处理来加速大量数据的最小生成树算法。树正在使用 Prim的方法。总之,我有一个程序,为每个类别创建一个加权矩阵,然后进入例程来制作最小跨度树,在这个例程中我有这个代码
if __name__=='__main__':
m=Manager()
q=Queue()
#wt=partial(_lightest_edge_weight, graph=graph, visited=visited)
p=Pool()
#go to each visited edge
for each in visited:
q.put(each)
q.put('DONE')
#set up multiprocessing for edges in queue
p.apply_async(target=_lightest_edge_weight, args=(graph,visited,q,))
但是,每当我这样做时(我也尝试使用Process plus启动和加入),打开的新进程将重新启动整个程序,而不是仅针对_lightest_edge_weight
运行队列中的项目。整个程序循环而不仅仅是目标子程序时的任何想法?感谢。