import threading
threadlocal = threading.local()
threadlocal.depth = 0
def _increase_depth():
threadlocal.depth += 1
def _decrease_depth():
threadlocal.depth -= 1
def _use_it():
print(threadlocal.depth)
Но я получаю:
AttributeError: '_thread._local' object has no attribute 'depth'
То, что я ожидал: каждый поток получает depth
, инициализированный 0
, и изменения будут видны только в этом конкретном потоке.
Почему атрибуты, определенные в threadlocal
, недоступны в потоках?
(Этот код работает в разработке с тестовым сервером django: я еще не адаптировал его для создания минимального примера что может быть продемонстрировано с помощью простых потоков)