0
다중 처리 풀 기능은 전달 된 모든 매개 변수를 피클링 한 다음 풀에서 재 작성합니다.일련화할 수없는 매개 변수가있는 다중 처리 풀
필자는 필자가 선택할 수없는 매개 변수 (예 : C++ 개체)를 가지고 있으며 만들 때 많은 시간이 필요합니다.
이러한 매개 변수를 직렬화 할 필요없이 풀에 전달할 수있는 방법이 있습니까?
다중 처리 풀 기능은 전달 된 모든 매개 변수를 피클링 한 다음 풀에서 재 작성합니다.일련화할 수없는 매개 변수가있는 다중 처리 풀
필자는 필자가 선택할 수없는 매개 변수 (예 : C++ 개체)를 가지고 있으며 만들 때 많은 시간이 필요합니다.
이러한 매개 변수를 직렬화 할 필요없이 풀에 전달할 수있는 방법이 있습니까?
multiprocessing.Pool
은 새 작업자 프로세스가 생성 될 때마다 실행되는 초기화 함수를 전달할 수 있습니다.
이 함수를 사용하여 C++ 객체를 초기화 할 수 있습니다. 각 프로세스에는 고유 한 사본이 있습니다.
from multiprocessing import Pool
parameters = None
def initializer():
global parameters
parameters = initialize_cpluplus_objects()
def function():
parameters.do_something()
pool = Pool(initializer=initializer_function)
pool.apply_async(function)