我是python中多处理模块的初学者,我只想对我的def func使用并发执行。此外,我在代码中使用了一些常量,我对它们有问题。 代码是(python 3.6.8):
from multiprocessing import Pool
FIRST_COUNT=10
print("Enter your path")
PATH=input()
some_list=[]
for i in range(10000):
some_list.append(i)
def func(some_list):
.....
if __name__ == "__main__":
chunks = [some_list[i::4] for i in range(4)]
pool = Pool(processes=4)
pool.map(func,chunks)
当我试图启动这个程序,我看到消息输入你的路径5次和5次我需要输入我的路径。i、 e此代码执行1+4次(对于每个进程)
我想使用FIRST\u COUNT、PATH和一些类似常量的\u列表,并且只对func使用多处理。我该怎么做。拜托,帮帮我
您应该将代码放入
if __name__ == "__main__":
中,以便只执行一次如果您想使用
FIRST_COUNT
,PATH
,那么最好将它作为参数发送到func
您必须在
chunks
中用FIRST_COUNT
、PATH
创建元组函数必须将其作为元组并将其解包
工作示例
编辑:您也可以使用
starmap()
而不是map()
然后您可以使用(无需解包参数)
相关问题 更多 >
编程相关推荐