【发布时间】:2020-03-21 05:53:14
【问题描述】:
if __name__ == '__main__':
MATCH_ID = str(doc_ref2.id)
MATCH_ID_TEAM = doc_ref3.id
with concurrent.futures.ProcessPoolExecutor(max_workers=30) as executor:
results = list(executor.map(ESPNlayerFree, teamList1))
MATCH_ID_TEAM = str(doc_ref4.id)
with concurrent.futures.ProcessPoolExecutor(max_workers=30) as executor:
results = list(executor.map(ESPNlayerFree, teamList2))
当我打印MATCH_ID_TEAM 时,它会打印值。但在这个过程中,它显示了我在顶部设置为空的默认值。
如何将变量的值更新到所有进程?
ESPNPlayerFree is a class that takes `id` as an argument. So `teamList1` and `teamList2` are list of ids to initialize my objects.
MATCH_ID 和 MATCH_ID_TEAM 是在我的类中使用的变量 ESPNPlayerFree
操作系统 Windows 10 64 位
IDE Pycharm
Python 版本 3.6.1
【问题讨论】:
-
什么变量?什么是teamList1?什么是 ESPNPlayerFree?您可以添加有关您的流程的更完整的代码吗?
-
@ranifisch 更新解释了一切。我无法添加更多代码,因为已经没有更多代码了,只有
ESPNPlayerFree这个巨大的类 -
所以你想将 MATCH_ID 和 MATCH_ID_TEAM 传递给进程并在进程中获取更新的值?我的意思是从您的“主要”更新它们并在流程中更新值?
-
是的,这正是我想要的工作
-
将列表
teamLIst1转换为列表[(MATCH_ID_TEAM, item1), (MATCH_ID_TEAM, item2), etc.]并将此列表用于进程。每个进程都必须将参数解压缩到变量 -match_id_team, item = arg
标签: python concurrency multiprocessing python-multiprocessing process-pool