Python Multiprocessing and Serializing Data

Ich führe ein Skript auf einem Schulcomputer mit dem Befehl @ aumultiprocessing Modul. Ich serialisiere die Daten häufig. Es kann durch den folgenden Code zusammengefasst werden:

import multiprocessing as mp
import time, pickle

def simulation(j):
    data = []
    for k in range(10):
        data.append(k)
        time.sleep(1)
        file = open('data%d.pkl'%j, 'wb')
        pickle.dump(data, file)
        file.close()
if __name__ == '__main__':
    processes = []
    processes.append(mp.Process(target = simulation, args = (1,) ))
    processes.append(mp.Process(target = simulation, args = (2,) ))
    for process in processes:
        process.start()
    for process in processes:
        process.join()

Wenn ich also meinen Code für viele weitere Simulationen ausführe und mir vorstelle, dass es sich um intensivere, abwechslungsreiche Aufgaben handelt, erhalte ich die folgende Fehlermeldung:IOError: [Errno 5] Input/output error normalerweise vorangestellt vonfile.open(...) oderfile.close().

Meine Fragen

Wie behebe ich diesen Fehler in meinem Skript?Was bedeutet dieser Fehler für einen Python-Neuling? Referenzen erwünscht.

Ein paar Anmerkungen zu meiner Prozedur:

Anstatt das Multiprocess-Attribut @ zu setzdaemon seinTrue, Ich benutze den Bildschirm, um das Skript auszuführen und dann zu trennen. Auf diese Weise kann ich auch die Verbindung trennen, ohne mir Gedanken über das Anhalten meines Skripts machen zu müssen.Dies schien ein verwandter @ zu seFrag zum Drucken mit demsubprocess Modul. Ich habe den Daemon wie gesagt nicht explizit verwendet, daher bin ich mir nicht sicher, ob dies helfen wird.Dies geschieht normalerweise nach einer Laufzeit von ungefähr einem Tag und tritt bei verschiedenen Prozessen zu unterschiedlichen Zeiten auf.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage