728x90
반응형
질문 : 파이썬 스레드에서 반환 값을 얻는 방법은 무엇입니까?
foo
함수 'foo'
문자열을 반환합니다. 스레드의 대상에서 반환되는 'foo'
값을 어떻게 얻을 수 있습니까?
from threading import Thread
def foo(bar):
print('hello {}'.format(bar))
return 'foo'
thread = Thread(target=foo, args=('world!',))
thread.start()
return_value = thread.join()
위에 표시된 "한 가지 분명한 방법"은 작동하지 않습니다. thread.join()
None
반환했습니다.
답변
Python 3.2 이상에서 stdlib concurrent.futures
모듈은 반환 값 또는 예외를 작업자 스레드에서 주 스레드로 다시 전달하는 것을 포함 threading
더 높은 수준의 API를 제공합니다.
import concurrent.futures
def foo(bar):
print('hello {}'.format(bar))
return 'foo'
with concurrent.futures.ThreadPoolExecutor() as executor:
future = executor.submit(foo, 'world!')
return_value = future.result()
print(return_value)
출처 : https://stackoverflow.com/questions/6893968/how-to-get-the-return-value-from-a-thread-in-python
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python에서 날짜를 datetime으로 변환 (0) | 2021.08.20 |
---|---|
로컬에 설치된 Python 모듈 리스트를 얻는 방법 (0) | 2021.08.13 |
Python을 사용하여 시스템 호스트 이름을 얻는 방법 (0) | 2021.08.13 |
Python에서 수동으로 예외 발생 (throwing) (0) | 2021.08.12 |
pip로 특정 패키지 버전 설치 (0) | 2021.08.12 |