Потоки (Threading) в Python

Что такое поток?

Поток исполнения является наименьшим последовательность запрограммированных инструкций , которые могут управляться независимо друг от друга с помощью планировщика , который обычно является частью операционной системы. Поток в компьютерной программе - это путь выполнения. Threading создает дополнительные независимые пути выполнения в вашей программе. Каждая программа начинается с хотя бы одного пути выполнения / потока. Вы можете создавать больше потоков для выполнения параллельных задач в зависимости от ваших требований. Это концепция эффективного использования ресурсов . Наличие нескольких потоков в приложении обеспечивает два очень важных потенциальных преимущества:

Улучшение восприимчивости приложения.

Улучшите производительность приложений в режиме реального времени в многоядерных системах.
Для этого есть библиотеки. Важно отметить, что Threading требует тщательной синхронизации, чтобы избежать условий гонки.

Как создать поток в Python

Модуль «поток» обеспечивает простую функциональность, и более высокий уровень интерфейса предоставляется в потоковом модуле, который должен использоваться вместо этого. Первое, что вам нужно сделать, это импортировать Thread, используя следующий код:

Простая программа Thread

В следующем примере показано, как запустить функцию как потоки в Python. Самый простой способ - через модуль потока и его метод start_new_thread() .

Thread.start_new_thread начать новую нить и возвращает его идентификатор. Когда функция возвращается, поток бесшумно выходит.

Пример:

Создание класса Thread в Python

Python предоставляет модуль потоковой передачи, который реализует слой поверх модуля потока . Модуль потоковой передачи предоставляет, помимо прочего, класс Thread, который содержит метод run() . Типичное использование заключается в подклассе класса Thread и переопределении метода run() в подклассе для реализации требуемой функциональности. Чтобы создать поток в Python, вы хотите, чтобы ваш класс работал как поток. Для этого вы должны подклассифицировать свой класс из класса Thread .

Здесь MyThreadClass является дочерним классом класса Thread . Следующий шаг - определить метод запуска в этом классе. Метод run() в MyThreadClass является точкой входа для потока. Метод run() будет выполнен, когда мы вызываем метод начала любого объекта в нашем классе MyThreadClass. Вы можете написать код внутри метода run() для запуска потока. Можно передать функцию или другой вызываемый объект в конструктор класса Thread, чтобы указать цель, которую вызовет метод run(). Для этого мы можем использовать функцию thread.start_new_thread :

Полный код

Вывод:

В приведенном выше примере вы можете видеть, что класс ThreadClass наследует от threading.Thread, и из-за этого вам нужно определить метод run(), который выполняет код, который вы запускаете внутри потока. Единственное, что важно отметить в методе run: self.getName() - это метод, который идентифицирует имя потока. Наконец, t.start() - это то, что фактически запускает потоки.

 

 

 

Источник: net-informations.com

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *