Потоки в Python: узнайте, как работать с потоками в Python



Эта статья о потоках в Python расскажет вам, что такое потоки, их типы, как их запускать и использовать наилучшим образом.

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

Следующие указатели будут рассмотрены в этой статье,





Давай начнем

Потоки в Python

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

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



Хотя запускать два разных процесса одновременно - это потрясающее чувство, необходимо понимать, что текущая версия Python 3 и выше закодирована таким образом, что в любой момент времени может быть запущен только процесс. Однако, если вам нужно одновременно использовать два или более процессов в CPython, вам необходимо закодировать часть вашего кода на других языках, таких как C, C ++ и Java, а затем запустить их через многопоточность в Python.

преобразование типов в c ++

Одним из наиболее известных преимуществ многопоточности в Python является ее способность повысить ясность дизайна.

Перед этим у нас есть некоторое представление о потоках в Python, давайте разберемся, как запустить поток,



Запуск потока в Python

Теперь, когда вы привыкли к определению потока в Python, давайте рассмотрим пример того, как вы можете создать свой собственный поток в Python. Чтобы создать поток в Python, вам сначала нужно импортировать библиотеку потоков, а затем указать ей start (), как показано в примере ниже:

import logging import threading import time def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: finish', name) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: перед созданием потока') x = threading.Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: перед запуском потока') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: дождитесь завершения потока ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: все готово ')

Вывод

Вывод - потоки в Python - Edureka

При запуске потока в Python вы передаете его как функцию, которая содержит список аргументов, которые необходимо выполнить. В приведенном выше примере вы инструктируете Python запустить поток thread_function () и передать его в 1 в качестве аргумента.

Когда вы запустите вышеуказанную программу, результат будет выглядеть примерно так.

Следующий фрагмент этой статьи о потоках в Python позволяет нам узнать, что такое потоки демонов,

факториал числа java

Что такое потоки демонов?

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

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

Теперь давайте изменим указанную выше программу и посмотрим, что произойдет, если мы вставим в код поток демона.

Новый код: x = threading.Thread (target = thread_function, args = (1,), daemon = True)

Когда вы запустите вышеуказанную программу с внесенными изменениями, она будет выглядеть примерно так.

Разница между этими двумя выходными данными состоит в том, что последняя строка отсутствует в последней. У thread_function () не было шанса завершить, потому что мы вставили поток демона, и как только он достиг конца, он вышел из программы.

Присоединение к теме

Теперь, когда вы узнали о концепции создания потока в Python, а также о концепции демонического потока, позвольте нам узнать, как вы можете объединять потоки в Python.

Используя функцию join () в Python, вы можете объединить два разных потока, а также указать одному из них ждать, пока другой не закончит свое выполнение. Эта функция часто бывает полезна, когда вы пишете большие приложения, и вам нужно, чтобы все процессы выполнялись в определенном порядке.

В заключительной части этой статьи «Потоки в Python» будут показаны работающие несколько потоков,

Работа с несколькими потоками

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

import logging import threading import time def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: finish', name) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') thread = list ( ) для индекса в диапазоне (3): logging.info ('Main & ampampampnbsp & ampampampnbsp: создать и запустить поток% d.', index) x = threading.Thread (target = thread_function, args = (index,)) threads.append (x ) x.start () для индекса, поток в перечислении (потоки): logging.info ('Main & ampampampnbsp & ampampampnbsp: перед присоединением к потоку% d.', index) thread.join () logging.info ('Main & ampampampnbsp & ampampampnbsp: thread% d готово ', индекс)

Вывод

В приведенной выше программе мы следовали той же процедуре импорта библиотеки потоков, запуска потока, создания нескольких потоков, а затем использования функции join () для объединения всех вместе и выполнения в определенном порядке.

Когда вы запустите вышеуказанную программу, результат будет выглядеть примерно так.

Заключение

Это одна из самых удобных функций Python. Используя его правильно, вы можете сделать весь процесс кодирования намного проще и эффективнее. Мы надеемся, что из приведенной выше статьи вы узнали основы многопоточности и продолжите использовать ее в повседневном программировании.

как создать пакет Java

Итак, ребята, я надеюсь, вам понравилась эта статья.

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

Есть вопрос к нам? Упомяните их в разделе комментариев к этой статье, и мы свяжемся с вами.