result = []
pool = Pool(processes=10) # 并发数量设为10
for foldername in folderlist:
path_dfs = path + foldername + '/pre_new/'
os.makedirs(path_dfs)
path_info = path + foldername + '/样本分析.csv'
path_1 = path + foldername + '/edge_info_total_0.7.csv' # 边数据(包含相似度>=0.67)
path_2 = path + foldername + '/node_info.csv'
path_3 = path + foldername + '/pre_new/component_element.csv' # 输出,存储包含每个组成单元的知识元
path_4 = path + foldername + '/pre_new/edge_info_childnet.csv' # 输出,存储张成子图点边权重信息
path_5 = path + foldername + '/pre_new/un_link.csv'
result.append(pool.apply_async(main, args=(foldername, path_info, path_1, path_2, path_3, path_4,path_5,)).get())
pool.close()
pool.join()
for i in result:
print(i)

我想同时创建10个进程,但是最终多进程的效果没有体现,这是为什么?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 美少女战士拯救世界前的求学之路 2022-05-02 13:48关注
谢谢,我问题解决了,其实不是for的问题,而是get()的问题,这里的get需要获取值,在没有值时,get就会让程序出现阻塞直到等到值,所以for循环的每一步都要等到值才会继续下一个for循环,就出现了类似同步的情况。这是改后的答案
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录