Полагаю, вы - конверт из C ++, в котором много значений можно придать объемам переменных, что равняется времени жизни переменных.Это не тот случай для Python, а для сборщиков мусора вообще. Scope! = Lifetime просто потому, что сборка мусора происходит всякий раз, когда интерпретатор обходит его, а не на границах области видимости.Тем более, что вы пытаетесь делать с ним асинхронные вещи, поднятые волосы на вашей шее должны вибрировать под шум всех предупреждающих звонков в вашей голове!Вы можете делать вещи со временем жизни объектов, используя ' del '.(На самом деле, если вы читаете исходные коды модуля сборщика мусора cpython, очевидное (и несколько забавное) презрение к объектам с финализаторами ( del методы), выраженными там, должно сказать всем использовать даже время жизниобъект только в случае необходимости).
Вы можете использовать sys.getrefcount (self), чтобы узнать, когда выходить из цикла в вашем потоке.Но я вряд ли порекомендую это (просто попробуйте, какие числа он возвращает. Вы не будете счастливы. Чтобы узнать, кто что держит, просто проверьте gc.get_referrers (self)).Количество ссылок может / будет зависеть также от сборки мусора.
Кроме того, привязка времени выполнения потока выполнения к областям действия / времени жизни объектов является ошибкой в 99% случаев.Даже Boost не делает этого.Это выходит за рамки RAII, чтобы определить нечто, называемое «отсоединенным» потоком.http://www.boost.org/doc/libs/1_55_0/doc/html/thread/thread_management.html