프로그래밍 언어/Python
파이썬 스레드에서 반환 값을 얻는 방법
Rateye
2021. 8. 13. 10:15
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
반응형