Ich spiele mich gerade einwenig mit multiprocessing und habe da jetzt eine Frage.
Angenommen ich habe in einem py modul einige Methoden. Manche davon machen nur simple tasks wie etwas ausgeben, oder ein file unzipen, andere starten endloschleifen um sporadisch etwas zu prüfen.
zb(ich bin nicht gut in Beispiele ausdenken, bitte entschuldigt diese sinnlosen Snippets ^^):
Code: Alles auswählen
def check_something():
while 1:
check_folder("C:\dir1")
time.sleep(60)
def check_something_else():
while 1:
check_file("C:\\file.xml")
time.sleep(60)
def check_folder(path):
if os.path.isdir(path):
print("DIR EXISTS")
def check_file(path):
if path[-3:] == "xml":
print("XML FILE !")
process1 = multiprocessing.Process(target = check_something)
process2 = multiprocessing.Process(target = check_something_else)
process1.start()
process2.start()
Nun rufen aber diese Prozesse jeweils Methoden aus dem "Hauptmodul" auf. Genau da habe ich eine Frage dazu.
Kommunizieren die beiden neuen Prozesse also mit dem Hauptprozess und rufen dort die funktionen auf, oder kriegt jeder neue Prozess das gesamte Modul in seinen Adressraum ?
Vielen Dank schon mal !