マルチプロセッシングに関して大きな問題があります。この場合、私は
を持っています1. メインプロセスのメインクラス
2. 別のプロセス内のクラス foo
メインプロセスを使用して、プロセス2内のいくつかの変数を変更する必要があります。 これどうやってするの/? ? ?
class Main: def __init__(self): self.Foo_Instance = Foo() multiprocessing.Process(target=self.Foo_Instance.do_something).start() def Change_Foo(self): Foo_Instance.ImportantVar = True class Foo: def __init__(self): self.ImportantVar = False def do_something(self): pass Main_Instance = Main() Main_Instance.Change_Foo()
通常、各プロセスには、他のプロセスからアクセスできない独自のメモリがあります。あるプロセスが別のプロセスで使用されている変数を変更できるようにしたい場合、最も簡単な解決策は、共有メモリに変数を作成することです。次のデモでは、multiprocessing.value
一个> インスタンスを使用します。 main.change_foo
が foo
の importantvar
属性を変更できることを証明するには、main.change_foo
が変更する前に foo を指定する必要があります。 it .do_something
初期値を出力する機会。同様に、foo.do_something
は、更新された値を出力する前に、main.change_foo
が値を変更するのを待つ必要があります。これを実現するには、2 つの 'multiprocessing.event' インスタンスを使用します。
リーリー
リーリー
以上がインスタンス変数は Python のプロセス間で共有されませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。