본문 바로가기
파이썬

파이썬 Python: is thread still running

by º기록 2021. 1. 25.
반응형

스레드가 완료되었는지 어떻게 알 수 있습니까? 나는 다음을 시도했지만 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

 

 

반응형

댓글