Рубрики
Без рубрики

Питонская резьба – Python MultishReading

Python Threading, Python Multisheading Пример, Python Thread Sleep, Python Threading Threading The Timer, Учебник для резьбы Python, основной нитью

Автор оригинала: Pankaj Kumar.

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

Что такое нить?

В информатике темы определяются как наименьшая единица работы, которая запланирована для выполнения операционной системы.

Некоторые очки, которые следует учитывать о потоках:

  • Темы существуют внутри процесса.
  • Несколько потоков могут существовать в одном процессе.
  • Темы в том же процессе делятся состоянием и памятью родительского процесса.

Это был просто краткий обзор нитей в целом. Этот пост в основном сосредоточен на резьба Модуль в Python.

Резьба на питоне

Давайте представим Python резьба Модуль с хорошим и простым примером:

import time
from threading import Thread

def sleepMe(i):
    print("Thread %i going to sleep for 5 seconds." % i)
    time.sleep(5)
    print("Thread %i is awake now." % i)

for i in range(10):
    th = Thread(target=sleepMe, args=(i, ))
    th.start()

Когда мы запустим этот скрипт, будет выходом следующее:

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

Функции резьбы Python

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

Threading.active_count ()

Эта функция возвращает количество потоков, которые в настоящее время в выполнении. Давайте изменим последний скрипт Sleepme (...) функция. Наш новый скрипт будет выглядеть так:

import time
import threading
from threading import Thread

def sleepMe(i):
    print("Thread %i going to sleep for 5 seconds." % i)
    time.sleep(5)
    print("Thread %i is awake now." % i)

for i in range(10):
    th = Thread(target=sleepMe, args=(i, ))
    th.start()
    print("Current Thread count: %i." % threading.active_count())

На этот раз у нас будет новый выход, показывающий, сколько потоков активны. Вот выход:

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

Threading.current_Thread ()

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

import time
import threading
from threading import Thread

def sleepMe(i):
    print("Thread %s going to sleep for 5 seconds." % threading.current_thread())
    time.sleep(5)
    print("Thread %s is awake now.\n" % threading.current_thread())

#Creating only four threads for now
for i in range(4):
    th = Thread(target=sleepMe, args=(i, ))
    th.start()

Выход вышеуказанного скрипта будет:

Threading.main_Thread ()

Эта функция возвращает основную нить этой программы. Больше ниток могут быть порождены этой поток. Давайте увидим этот скрипт:

import threading
print(threading.main_thread())

Теперь давайте запустим этот скрипт:

Как показано на изображении, стоит заметить, что Main_Thread () Функция была введена только в Python 3. Поэтому позаботьтесь о том, что используете эту функцию только при использовании версий Python 3+.

Threading.enumerate ()

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

import threading
for thread in threading.enumerate():
    print("Thread name is %s." % thread.getName())

Теперь давайте запустим этот скрипт:

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

Threading.timer ()

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

import threading

def delayed():
    print("I am printed after 5 seconds!")

thread = threading.Timer(3, delayed)
thread.start()

Теперь давайте запустим этот скрипт:

Python MultishReading

В этом посте мы увидели некоторые функции в резьба Модуль в Python и как он предоставляет удобные методы контроля потоков в многопоточной среде.

Ссылка: API док