В чем разница между модулями 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" реализуется объектно-ориентированным способом, то есть каждый поток соответствует объекту.