Python Glossary English

все Python 3threadingфункция

threading.enumerate()

сведения о потоках

Список всех живых объектов Thread, включая главный, демонические и фиктивные; ещё не запущенных и уже завершённых в нём нет.

Синтаксис

threading.enumerate()

Имя совпадает со встроенной enumerate(), и from threading import * её перекрывает: после этого for i, x in enumerate(items) падает с TypeError — пишите threading.enumerate(). Возвращается копия-снимок: менять её безопасно, но к моменту использования она уже может устареть. Удобно в отладке «почему программа не завершается»: ищите в списке недемонические потоки, кроме главного.

Примеры

import threading
stop = threading.Event()
t = threading.Thread(target=stop.wait, name='waiter')
print([th.name for th in threading.enumerate()])  # → ['MainThread']
t.start()
print(sorted(th.name for th in threading.enumerate()))  # → ['MainThread', 'waiter']
stop.set()
t.join()
from threading import *
try:
    for i, x in enumerate('ab'):
        pass
except TypeError as e:
    print(e)  # → enumerate() takes 0 positional arguments but 1 was given

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности