我有一个多线程Python(2.7)程序,它为不同的任务运行多个线程。我存储了线程in,用于在单独的线程中跟踪线程的状态,以便进行状态跟踪。
如何通过使用线程id来检查线程是否处于活动状态( isAlive() )?
发布于 2015-06-02 06:31:41
据我所知,我不相信有一种方法可以通过它的thread_id检索线程。最好的办法是存储对线程对象本身的引用。
发布于 2022-02-18 20:16:56
您可以通过threading.enumerate() (对于Python3:threading.enumerate())获取所有活动线程的列表
返回当前活动的所有线程对象的列表。
然后检查这个列表是否包含带有存储id的Thread。如果是,则线程仍处于活动状态。
举个例子:
import threading
t_id = 1080 # stored thread id
is_alive = any([th for th in threading.enumerate() if th.ident == t_id])
print("Still alive: ", is_alive)https://stackoverflow.com/questions/30579022
复制相似问题