2017-12-04 3 views
1

파이썬의 멀티 프로세싱 모듈을 사용하여 다른 객체를 생성하고 그 객체를 loops_forever 메소드로 호출하는 새로운 프로세스를 시작하고 싶습니다. 내 메인 클래스에서파이썬 멀티 프로세싱 호출 객체 메소드

나는이 :이 코드를 실행하면

import OtherService 
from multiprocessing import Process 
my_other_service = OtherService(address=ADDRESS) 
my_other_process = Process(target=my_other_service.loops_forever()) 
print("got here") 
my_other_process.start() 
print("done") 

은 결코 인쇄되지됩니다 "여기 있어요". loops_forever는 "got got"인쇄물 바로 위에 호출되며 컨트롤은 결코 내 주 수업으로 되돌아 가지 않습니다.

내가 뭘 잘못하고 있니? 나는 이런 식으로 전에 멀티 프로세싱을 사용하고 있습니다 : 제대로 OtherService의 init 함수를 호출하고 별도의 프로세스로 init 함수를 실행

my_other_process = Process(target=OtherService, kwargs={"address":ADDRESS}) 
my_other_process.start() 

합니다. 유일한 차이점은 init 함수를 호출 한 다음 loops_forever 메서드를 별도의 프로세스로 영원히 실행하고 싶다는 것입니다.

답변

1

target=my_other_service.loops_forever()을 수행하면 loops_forever이라고 부릅니다. 이것을 호출하지 않고 함수로 전달하려면 target=my_other_service.loops_forever과 같이 괄호를 제거하십시오.

+0

어리석은 실수. 고맙습니다. @pycoder – crusarovid