Python正在运行Threads

Dav*_*zza 17 multithreading python-2.7

我正在用python做一个项目,在我的代码中我必须开始一些线程.现在我需要调用一个线程来阻止它,但是来自另一个类.有没有办法获得所有正在运行的线程的列表?

感谢帮助.

kai*_*ser 22

您可以在这里使用threading.enumerate():Python文档

  • threading.enumrate()返回所有线程'对象',这就是为什么你将[<_MainThread(MainThread,started -2​​5756864)>]作为输出.试试这个:对于threading.enumerate()中的线程:print(thread.name) (4认同)
  • threading.enumerate() 不适用于所有实例类型。我有一个 basic_scaling 应用程序,但是当我启动 10 个后台线程并且让它们都忙时(它们已启动、未阻塞、未休眠、未完成以及可验证地修改数据),threading.enumerate() 返回 [&lt;_MainThread(MainThread) , 开始 -25756864)&gt;] (3认同)

Vin*_*eel 8

threading.enumerate()可用于获取正在运行的线程(Thread 对象)的列表。根据库参考,运行线程意味着

  1. 当前活动的所有 Thread 对象,使用 threading 模块创建
  2. 守护线程(其存在不会阻止进程退出)
  3. 当前线程创建的虚拟线程对象(直接从C代码创建的线程。它们始终处于活动状态且守护进程,无法加入)
  4. 主线程(Python 中的默认线程)

它排除尚未启动和已终止的线程。

您可以使用threading.active_count获取 threading.enumerate 返回的列表的长度