Подтвердить что ты не робот

Нить против потоковой передачи

В чем разница между модулями threading и thread в Python?

4b9b3361

Ответ 1

В Python 3, thread был переименован в _thread. Это код инфраструктуры, который используется для реализации threading, и нормальный код Python не должен приближаться к нему.

_thread предоставляет довольно грубое представление о базовых процессах уровня ОС. Это почти никогда не то, что вы хотите, поэтому переименуйте в Py3k, чтобы указать, что это действительно просто деталь реализации.

threading добавляет некоторый дополнительный автоматический учет, а также несколько удобных утилит, все из которых делают его предпочтительным вариантом для стандартного кода Python.

Ответ 2

threading - это только модуль более высокого уровня, который взаимодействует с thread.

См. здесь для threading docs:

http://docs.python.org/library/threading.html

Ответ 3

Если я не ошибаюсь, thread позволяет вам запускать функцию как отдельный поток, тогда как threading вы должны создавать класс, но получать больше функциональных возможностей.

EDIT: Это неверно. Модуль threading предоставляет различные способы создания потока:

  • threading.Thread(target=function_name).start()
  • Создайте дочерний класс threading.Thread с помощью собственного метода run() и запустите его

Ответ 4

Модуль "Thread" рассматривает поток как функцию, а модуль "threading" реализуется объектно-ориентированным способом, то есть каждый поток соответствует объекту.