요약
- 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) # 순서 보장됨