В Python можно ли перебирать значения, хранящиеся в локальном потоке каждого потока?

Предположим, у меня есть это:

from threading import local
tl = local()

В разные моменты разные потоки в пуле потоков будут устанавливать что-то локальное для потока:

tl.resource = <something>

Можно ли перебрать все tl.resource, установленные каждым потоком?

1 ответ

Решение

Не в Python, хотя вы можете покопаться в состоянии интерпретатора в C и получить эту информацию (хотя я сомневаюсь в этом). Было бы разумно предположить, что это может быть возможно, если local() вернул синглтон для каждого потока, но это не так - вызов local() Несколько раз в одном и том же потоке будет генерироваться несколько уникальных экземпляров локального хранилища потока (не возвращать ссылку на один и тот же объект), и поэтому в структуре внутреннего потока Python нет ни одного поля, содержащего эти данные, что затрудняет проверку,

Другие вопросы по тегам