当我在Linux上运行这个脚本时,它会打印8个副本。如何强制python在不同的结果上使用所有核心,而不是重复的结果?在
from multiprocessing import Pool
def f():
f = open("/path/to/10.txt", 'r')
l = [s.strip('\n') for s in f]
f.close()
for a in range(0, len(l)):
for b in range(0, len(l)):
result = 0
if (a == b):
result = 1
else:
counter = 0
for i in range(len(l[a])):
if (int(l[a][i]) == int(l[b][i]) == 1):
counter += 1
result = counter / 10000
print((a + 1), (b + 1), result)
if __name__ == '__main__':
p = Process(target=f)
p.start()
p.join()
如果你只想运行多个核心,你必须使用多个进程,这里你只需要使用一个。在
此外,您还需要在独立的单元/例程中中断例程
f
,这样它可以并行工作,并且整个任务可以在多个工作进程之间共享。在下面是一个2进程代码示例,它可以在您的计算机上使用多个内核:
相关问题 更多 >
编程相关推荐