map_async vs apply_async:was sollte ich in diesem Fall

Ich bin Bearbeitung von ascii-Daten, einige Vorgänge, und dann schreiben Sie alles wieder in eine andere Datei (Arbeit post_processing_0.main, ohne dass etwas zurückgegeben). Ich möchte zum parallelisieren des Codes mit dem multiprocessing-Modul finden Sie in den folgenden code-snippet:

from multiprocessing import Pool
import post_processing_0

def chunks(lst,n):
    return [ lst[i::n] for i in xrange(n) ]

def main():
    pool = Pool(processes=proc_num)
    P={}
    for i in range(0,proc_num):
        P['process_'+str(i)]=pool.apply_async(post_processing_0.main, [split_list[i]])
    pool.close()
    pool.join()


proc_num=8
timesteps=100
list_to_do=range(0,timesteps)
split_list=chunks(list_to_do,proc_num)

main()

Las ich den Unterschied zwischen map und async, aber ich don t verstehen es sehr gut. Ist meine Bewerbung des multiprocessing-Modul korrekt?

In diesem Fall, sollte ich map_async oder apply_async? Und warum?

Edit:

Ich glaube nicht, dass dies ist ein Duplikat der Frage Python-multiprocessing.Pool: Zeitpunkt der Verwendung gelten, apply_async oder Karte?. In der Frage, die Antwort den Fokus auf die Reihenfolge der Ergebnis, dass unter Verwendung der beiden Funktionen. Hier Frage ich: was ist der Unterschied, wenn nichts zurückgegeben wird?

InformationsquelleAutor Pierpaolo | 2014-12-15
Schreibe einen Kommentar