Ich habe das folgende Beispiel für ein größeres Stück Code gemacht, den ich schreibe. Ich möchte mehrere Prozesse verwalten 100 oder so Threads, die auch Klassen sind.Multi-Prozess-Klasse speichert keine Daten im eigentlichen Prozess
Ich habe zwei Probleme, eine ist, dass die "add" -Methode scheint nicht wirklich zu dem neuen Prozess hinzuzufügen. Der andere ist, dass, obwohl 2, 3 oder 4 Prozesse erstellt werden, die Threads immer noch unter dem ersten Hauptprozess gestartet werden.
Der folgende Code zeigt nicht die Thread-Klasse, aber vielleicht, wenn Sie helfen können zu erklären, warum der Prozess nicht richtig hinzufügen kann ich den Thread Teil herausfinden.
from time import sleep
import multiprocessing
class manager(multiprocessing.Process):
def __init__(self):
multiprocessing.Process.__init__(self)
self.symbols_list = []
def run(self):
while True:
print "Process list: " + str(self.symbols_list)
sleep(5)
def add(self, symbol):
print "adding..." + str(symbol)
self.symbols_list.append(symbol)
print "after adding: " + str(self.symbols_list)
if __name__ == "__main__":
m = manager()
m.start()
while True:
m.add("xyz")
raw_input()
Die Ausgabe ist wie folgt:
adding...xyz
after adding: ['xyz']
Process list: []
adding...xyz
after adding: ['xyz', 'xyz']
adding...xyz
after adding: ['xyz', 'xyz', 'xyz']
Process list: []