我的代码:
import time
def func(sleep_time):
task = Thread(target=task_func, args=(sleep_time,))
task.start()
return task.ident
def task_func(t):
time.sleep(t) # some task example
return "some task result"
我知道,有is_alive()
方法,但如果我有很多这样的任务:
for i in range(3):
func(i)
输出(任务ID(将类似于:
123
456
789
那么,我如何通过ID来检查任务状态,比如:
def check_status(task_id):
return is_alive(task_id)
您可以使用threading.enumerate()
列出所有活动线程,然后检查所需线程是否处于活动状态。
threading.enumerate()
返回所有仍处于活动状态的线程对象的列表。https://docs.python.org/3.6/library/threading.html
import threading
def check_status(task_id):
my_threads = threading.enumerate()
for elem in my_threads:
if elem.ident == task_id:
print(elem)