私が書いているより大きなコードを次のように作成しました。クラスでもある100個程度のスレッドを管理するために、複数のプロセスが必要です。マルチプロセスクラスが実際のプロセスにデータを格納していません
私は2つの問題があります.1つは、「追加」メソッドが実際に新しいプロセスに追加されていないようです。もう1つは、2,3、または4つのプロセスが作成されても、スレッドはすべて最初のメインプロセスでまだ開始されていることです。
次のコードはスレッドクラスを示していませんが、プロセスが正しく追加されていない理由を説明できれば、スレッドの部分を特定できます。
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()
次のように出力されている:あなたは、新しいプロセスを作成する場合
adding...xyz
after adding: ['xyz']
Process list: []
adding...xyz
after adding: ['xyz', 'xyz']
adding...xyz
after adding: ['xyz', 'xyz', 'xyz']
Process list: []