반응형
스레드가 완료되었는지 어떻게 알 수 있습니까? 나는 다음을 시도했지만 threads_list에는 스레드가 여전히 실행중인 것을 알고있는 경우에도 시작된 스레드가 포함되어 있지 않습니다.
import thread
import threading
id1 = thread.start_new_thread(my_function, ())
#wait some time
threads_list = threading.enumerate()
# Want to know if my_function() that was called by thread id1 has returned
def my_function()
#do stuff
return
해결 방법
핵심은 스레드가 아닌 스레딩을 사용하여 스레드를 시작하는 것입니다.
t1 = threading.Thread(target=my_function, args=())
t1.start()
그런 다음
z = t1.is_alive()
# Changed from t1.isAlive() based on comment. I guess it would depend on your version.
또는
l = threading.enumerate()
join ()을 사용할 수도 있습니다.
t1 = threading.Thread(target=my_function, args=())
t1.start()
t1.join()
# Will only get to here once t1 has returned.
참조 페이지 https://stackoverflow.com/questions/15063963
반응형
'파이썬' 카테고리의 다른 글
파이썬 NLTK에서 문자열 문장을 어떻게 토큰 화합니까? (0) | 2021.01.25 |
---|---|
파이썬 Python + Selenium WebDriver를 사용하여 쿠키를 저장하고로드하는 방법 (0) | 2021.01.25 |
파이썬 플롯 할 matplotlib Axes 인스턴스를 얻는 방법은 무엇입니까? (0) | 2021.01.25 |
파이썬 내일 날짜를 얻는 가장 깨끗하고 파이썬적인 방법? (0) | 2021.01.25 |
파이썬 os.path.exists와 os.path.isdir의 장단점 (0) | 2021.01.25 |
댓글