멀티 프로세싱에 큰 문제가 있습니다. 이 경우에는
1. 메인프로세스의 메인클래스
2. 다른 프로세스의 foo 클래스
메인 프로세스를 사용하여 process2 내부의 일부 변수를 변경해야 합니다. 어떻게 해야 하나요/? ? ?
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.do_something
一个打印出其初始值的机会。同样, foo.do_something
需要等待 main.change_foo
를 사용하여 값을 변경합니다. 이를 달성하기 위해 우리는 두 개의 'multiprocessing.event' 인스턴스를 사용합니다:
인쇄:
으아악위 내용은 인스턴스 변수는 Python의 프로세스 간에 공유되지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!