Ich habe drei Funktionen, die jeweils lesen, verarbeiten und schreiben. Jede Funktion wurde optimiert (nach meinem besten Wissen), um unabhängig zu arbeiten. Jetzt versuche ich, jedes Ergebnis jeder Funktion als nächstes in der Kette zu übergeben, sobald es verfügbar ist, anstatt auf die gesamte Liste zu warten. Ich bin mir nicht sicher, wie ich sie verbinden kann. Hier ist, was ich bisher habe.Abrufen und Verwenden von Teilresultaten von Pool
def main(files_to_load):
loaded_files = load(files_to_load)
with ThreadPool(processes=cpu_count()) as pool:
proccessed_files = pool.map_async(processing_function_with_Pool, iterable=loaded_files).get()
write(proccessed_files)
Wie Sie sehen können, meine Funktion main() wartet auf alle Dateien (ca. 500 MB) zu laden speichert sie in den Speicher und sendet sie an processing_function_with_Pool(), die die Dateien in Stücke teilt processed.After zu sein Wenn die Verarbeitung abgeschlossen ist, werden die Dateien auf die Festplatte geschrieben. Ich habe das Gefühl, dass zwischen diesen drei Schritten viel unnötiges Warten stattfindet. Wie kann ich alles verbinden?