Wenn ich dieses Skript unter Linux ausführe, werden 8 Duplikate gedruckt. Wie erzwingen Python verwenden Sie alle Kerne auf verschiedene Ergebnisse, anstatt auf Duplikate?Python-Multiprozessor-Duplikate
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()
Wenn am noch 8 Duplikate zu bekommen. Kann ich nicht nur 'prc1 = Process (target = task)' – Masyaf
verwenden, bitte erläutern Sie, was Sie mit 'duplicates' meinen? Wenn Sie einen einzigen "Prozess" verwenden, können Sie nur einen Kern Ihrer Maschine verwenden. – anand
Ergebnisse wie '1 2 0.0001 1 2 0.0002 1 2 0.0002 1 2 0.0002' statt nur eine Zeile' 1 2 0.0001'. Und warum bekomme ich unterschiedliche Ergebnisse für den gleichen Vergleich? – Masyaf