-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
as_completed와 future 관련하여 질문했던 내용입니다
21.10.20 22:12 작성 조회수 88
0
as_completed() 함수와 future에 대해서 질문을 드렸고 감사하게도 도움을 많이 주셔서 모르는 부분을 거의 다 해결할 수 있었습니다.
"The as_completed()
function takes an iterable of Future
objects and starts yielding values as soon as the futures start resolving."
이라는 설명과 관련된 내용들과, as_completed() 함수의 코드 예제들을 찾아보았는데요
from concurrent.futures import ThreadPoolExecutor, as_completed
from time import sleep
from random import randint
def return_after_5_secs(num):
sleep(randint(1, 5))
return 'Return of {}'.format(num)
pool2 = ThreadPoolExecutor(5)
futures2 = []
for x in range(5):
futures2.append(pool2.submit(return_after_5_secs, x))
for x in as_completed(futures2):
print(x.result())
공통적으로 .submit() 함수를 통해 future 객체를 생성하고, 이를 리스트 안에 넣으면서 리스트 형태로 변환(?)하는 것을 확인할 수 있었습니다.
그 후 iterator를 리턴하는 as_completed() 함수의 특성을 이용하여 for 구문에서 반복하는 것을 볼 수 있었는데요
그렇다면
"The as_completed()
function takes an iterable of Future
objects"
에서 말하는 내용은 결국 as_completed() 함수가 'submit 함수 등을 이용해 future 객체를 만들고, 이를 iterable한 객체의 형태로 변환을 하여 인자로 사용한다'는 의미로 이해하면 되는 것인가요??
항상 많은 도움 주셔서 감사합니다!!
답변을 작성해보세요.
0
답변 1