В чем разница между модулями threading и thread в Python?
Нить против потоковой передачи
Ответ 1
В Python 3, thread был переименован в _thread. Это код инфраструктуры, который используется для реализации threading, и нормальный код Python не должен приближаться к нему.
_thread предоставляет довольно грубое представление о базовых процессах уровня ОС. Это почти никогда не то, что вы хотите, поэтому переименуйте в Py3k, чтобы указать, что это действительно просто деталь реализации.
threading добавляет некоторый дополнительный автоматический учет, а также несколько удобных утилит, все из которых делают его предпочтительным вариантом для стандартного кода Python.
Ответ 2
threading - это только модуль более высокого уровня, который взаимодействует с thread.
См. здесь для threading docs:
Ответ 3
Если я не ошибаюсь, thread позволяет вам запускать функцию как отдельный поток, тогда как threading вы должны создавать класс, но получать больше функциональных возможностей.
EDIT: Это неверно. Модуль threading предоставляет различные способы создания потока:
-
threading.Thread(target=function_name).start() - Создайте дочерний класс
threading.Threadс помощью собственного методаrun()и запустите его
Ответ 4
Модуль "Thread" рассматривает поток как функцию, а модуль "threading" реализуется объектно-ориентированным способом, то есть каждый поток соответствует объекту.