Multiprocessing.Pool: 어떤 방법을 사용해야 합니까?
멀티프로세싱을 사용하면 Python이 여러 프로세스에서 동시에 기능을 실행할 수 있습니다. 그러나 적절한 방법을 선택하는 것은 특히 Pool.apply, Pool.apply_async 및 Pool.map을 고려할 때 혼란스러울 수 있습니다. 차이점과 사용 사례를 명확히 합시다:
Pool.apply 대 Pool.apply_async 대 Pool.map
1. Pool.apply:
2. Pool.apply_async:
3. Pool.map:
올바른 방법 선택
다음의 경우 Pool.apply를 사용하세요.
다음과 같은 경우 Pool.apply_async를 사용하세요.
다음과 같은 경우 Pool.map을 사용하세요.
예: Pool.apply_async의 비동기 콜백
<code class="python">import multiprocessing as mp import time def foo_pool(x): time.sleep(2) return x*x result_list = [] def log_result(result): result_list.append(result) def apply_async_with_callback(): pool = mp.Pool() for i in range(10): pool.apply_async(foo_pool, args = (i, ), callback = log_result) pool.close() pool.join() print(result_list) if __name__ == '__main__': apply_async_with_callback()</code>
출력:
[1, 0, 4, 9, 25, 16, 49, 36, 81, 64]
Pool.map과 달리 결과 순서가 함수 호출 순서와 일치하지 않을 수 있습니다.
위 내용은 Python 다중 처리에서는 어떤 풀 방법을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!