На это ответили Android, Цель C и С++ раньше, но, по-видимому, не для Python. Как я уверенно определить, является ли текущий поток основным потоком? Я могу придумать несколько подходов, ни одна из которых на самом деле не удовлетворяет меня, учитывая, что это может быть так же просто, как сравнение с threading.MainThread
, если оно существует.
Проверьте имя потока
Основной поток создается в threading.py
следующим образом:
Thread.__init__(self, name="MainThread")
чтобы можно было сделать
if threading.current_thread().name == 'MainThread'
но это имя исправлено? Другие коды, которые я видел, проверяли, содержится ли MainThread
в любом месте имени потока.
Сохраните начальный поток
Я мог бы хранить ссылку на начальную нить в момент запуска программы, т.е. пока нет других потоков. Это было бы абсолютно надежным, но слишком громоздким для такого простого запроса?
Есть ли более сжатый способ сделать это?