concureent.futures의 map 함수의 출력값과 관련해서 궁금한 내용인데요
from concurrent import futures
import threading
import time
def task(n):
print('{} : sleeping {}'.format(threading.current_thread().name, n))
time.sleep(n / 10)
print('{} : done with {}'.format(threading.current_thread().name, n))
return n / 10
ex = futures.ThreadPoolExecutor(max_workers=2)
print('main : starting')
results = ex.map(task, range(5, 0, -1))
print('main : unprocessed results {}'.format(results))
print('main : waiting for real results')
real_results = list(results)
print('main : results : {}'.format(real_results))
다음의 코드를 실행하니
print('main : unprocessed results {}'.format(results))
이 부분의 출력값이
ThreadPoolExecutor-0_1 : sleeping 4main : unprocessed results <generator object Executor.map.<locals>.result_iterator at 0x000002899230B7B0>
이렇게 나오는 것을 확인할 수 있었습니다..
generator와 iterator가 모두 나오는걸 볼 수 있었는데요
map 함수의 출력값은 generator인가요 iterator 인가요??