Zettelkasten

python ThreadPoolExecutore sumbit과 map 동작 차이

·수정 2026.04.23·수정 2

요약

  • submit은 개별 작업 하나를 제출하고 Future 객체를 즉시 반환한다.
  • map은 여러작업을 한번에 제출하고 결과를 iteratore로 반한한다. 결과는 입력 순서대로 yield 됨

본문

  • submit
future = executor.submit(func, arg)
result = future.result() # 로 결과를 갖고옴
  • map
    • lazy evaluation 형태라서 iterator가 소비될때까지 필요이상으로 future.result를 호출하지 않아서 메모리를 과하게 쓰지 않음
results = executor.map(func, iterable)
for r in results:
    print(r)   # 순서 보장됨

참고

concurrent.futures.ThreadPooolExecutor 동작