Неверно первое утверждение: основная программа может ждать поток через join, а при завершении Python ожидает недемонические потоки. Формулировки остальных пунктов тоже требуют уточнения.
Выберите НЕВЕРНОЕ утверждение о многопоточности в Python.
Неверно первое утверждение: основная программа может ждать поток через join, а при завершении Python ожидает недемонические потоки. Формулировки остальных пунктов тоже требуют уточнения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Выберите НЕВЕРНОЕ утверждение о многопоточности в Python.
- Основная программа никогда не ждёт окончания исполнения потока
- Не существует прямого способа прекратить выполнение потока
- После завершения потока ресурсы, связанные с его выполнением, освобождаются автоматически
- Объект threading.Thread не возвращает никаких значений
- Потоки могут получать доступ к переменным в пространстве имён основной функции
Ответ
Неверно первое утверждение: основная программа может ждать поток через join, а при завершении Python ожидает недемонические потоки. Формулировки остальных пунктов тоже требуют уточнения.
У Thread нет безопасного штатного принудительного kill: обычно используют сигнал остановки, например Event, и кооперативное завершение. Результат target не возвращается из join; его передают отдельно или применяют Future. Освобождение runtime-ресурсов потока не означает автоматическое закрытие всех открытых им ресурсов приложения. Потоки разделяют память, но локальная переменная другой функции не становится доступной по имени без ссылки или замыкания. Поэтому первый вариант — очевидно неверный, а последний нельзя понимать буквально как доступ к чужому стеку.
Источник: docs.python.org.