Многопроцессорная очередь Python

Mnogoprocessornaa Ocered Python



Наиболее важным элементом структуры данных является очередь. Очередь структуры данных «первым пришел, первым обслужен», которая является основой для многопроцессорной обработки Python, сопоставима. Очереди предоставляются функции процесса, чтобы позволить процессу собирать данные. Первый элемент данных, который необходимо исключить из очереди, является первым элементом, который необходимо ввести. Мы используем метод очереди «put()» для добавления данных в очередь и метод «get()» для извлечения данных из очереди.

Пример 1. Использование метода Queue() для создания многопроцессорной очереди в Python

В этом примере мы создаем многопроцессорную очередь в Python, используя метод «queue()». Многопроцессорность относится к использованию одного или нескольких ЦП в системе для одновременного выполнения двух или более процессов. Multiprocessing, сконструированный модуль в Python, облегчает переключение между процессами. Мы должны быть знакомы со свойством процесса, прежде чем работать с многопроцессорностью. Мы знаем, что очередь является важнейшим компонентом модели данных. Стандартная очередь данных, построенная по принципу «первым пришел – первым обслужен», и многопроцессорная обработка Python являются точными аналогами. Как правило, очередь хранит объект Python и имеет решающее значение для передачи данных между задачами.







Инструмент «spyder» используется для реализации существующего скрипта Python, поэтому давайте просто начнем. Сначала мы должны импортировать модуль многопроцессорности, потому что мы запускаем скрипт многопроцессорности Python. Мы сделали это, импортировав модуль многопроцессорности как «m». Используя технику «m.queue()», мы вызываем многопроцессорный метод «queue()». Здесь мы создаем переменную с именем «queue» и помещаем в нее многопроцессорный метод «queue()». Поскольку мы знаем, что очередь хранит элементы в порядке «первым поступил, первым вышел», то элемент, который мы добавляем первым, удаляется первым. После запуска многопроцессорной очереди мы вызываем метод «print()», передавая в качестве аргумента утверждение «Существует многопроцессорная очередь», чтобы отобразить ее на экране. Затем, поскольку мы сохраняем построенную очередь в этой переменной, мы печатаем очередь, передавая переменную «queue» в скобках метода «print()».




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







Пример 2. Использование метода Qsize() для определения размера очереди многопроцессорной обработки в Python

В этом случае мы определяем размер многопроцессорной очереди. Для расчета размера многопроцессорной очереди мы используем метод «qsize()». Функция «qsize()» возвращает реальный размер многопроцессорной очереди Python. Другими словами, этот метод предоставляет общее количество элементов в очереди.

Давайте начнем с импорта многопроцессорного модуля Python как «m» перед запуском кода. Затем с помощью команды «m.queue()» мы вызываем многопроцессорную функцию «queue()» и помещаем результат в переменную «Queue». Затем, используя метод «put()», мы добавляем элементы в очередь в следующей строке. Этот метод используется для добавления данных в очередь. Поэтому мы вызываем «Очередь» с помощью метода «put ()» и указываем целые числа в качестве ее элемента в скобках. Числа, которые мы добавляем, это «1», «2», «3», «4», «5», «6» и «7», используя функции «put()».



Кроме того, используя «Queue» для получения размера очереди многопроцессорной обработки, мы вызываем «qsize ()» с очередью многопроцессорной обработки. Затем во вновь созданной переменной «результат» мы сохраняем результат работы метода «qsize()». После этого мы вызываем метод «print()» и передаем оператор «Размер многопроцессорной очереди» в качестве его параметра. Далее мы вызываем переменную «result» в функции «print()», так как размер сохраняется в этой переменной.


Выходное изображение имеет отображаемый размер. Поскольку мы используем функцию «put()» для добавления семи элементов в очередь многопроцессорной обработки и функцию «qsize()» для определения размера, отображается размер очереди многопроцессорной обработки «7». Оператор ввода 'размер очереди многопроцессорной обработки' отображается перед размером.

Пример 3. Использование методов «Put()» и «Get()» в многопроцессорной очереди Python

В этом примере используются методы очереди «put()» и «get()» из многопроцессорной очереди Python. В этом примере мы разрабатываем две определяемые пользователем функции. В этом примере мы определяем функцию для создания процесса, который производит «5» случайных целых чисел. Мы также используем метод «put()», чтобы добавить их в очередь. Метод put() используется для помещения элементов в очередь. Затем, чтобы получить числа из очереди и вернуть их значения, мы пишем еще одну функцию и вызываем ее во время процедуры. Мы используем функцию «get()» для извлечения чисел из очереди, поскольку этот метод используется для извлечения данных из очереди, которую мы вставляем с помощью метода «put()».

Давайте приступим к реализации кода прямо сейчас. Во-первых, мы импортируем четыре библиотеки, составляющие этот скрипт. Сначала мы импортируем «sleep» из модуля time, чтобы отложить выполнение на некоторое время, измеряемое в секундах, затем «random» из модуля random, который используется для генерации случайных чисел, затем «process» из многопроцессорной обработки, потому что этот код создает процесс. , и, наконец, «очередь» от многопроцессорности. Первоначально создав экземпляр класса, можно использовать очередь. По умолчанию это устанавливает бесконечную очередь или очередь без максимального размера. Установив параметр максимального размера на число больше нуля, можно создать творение с ограничением по размеру.


Мы определяем функцию. Затем, поскольку эта функция определяется пользователем, мы даем ей имя «функция1» и передаем термин «очередь» в качестве ее аргумента. После этого мы вызываем функцию «print()», передавая ей операторы «builder: Running», «flush» и объект «True». Функция печати Python имеет уникальную опцию, называемую flush, которая позволяет пользователю выбрать, следует ли буферизовать этот вывод. Следующим шагом является создание задачи. Для этого мы используем «для», создаем переменную «m» и устанавливаем диапазон «5». Затем в следующей строке используйте «random()» и сохраните результат в созданной нами переменной «value». Это указывает на то, что функция завершает свои пять итераций, при этом каждая итерация создает случайное целое число от 0 до 5.

Затем, на следующем шаге, мы вызываем функцию «sleep()» и передаем аргумент «значение», чтобы задержать часть на определенное количество секунд. Затем мы вызываем «очередь» с помощью метода «put()», чтобы добавить значение в очередь. Затем пользователь информируется о том, что дальнейшая работа не требуется, путем повторного вызова метода «queue.put()» и передачи значения «None». Затем мы запускаем метод «print ()», передаем оператор «builder: ready» вместе с «flush» и устанавливаем для него значение «True».


Теперь мы определяем вторую функцию, «функция2», и назначаем ей ключевое слово «очередь» в качестве аргумента. Затем мы вызываем функцию «print ()», передавая состояния отчета «Пользователь: выполняется» и «сброс», для которых установлено значение «Истина». Мы запускаем операцию «function2», используя условие while true, чтобы взять данные из очереди и поместить их во вновь созданную переменную «item». Затем мы используем условие «если», «элемент отсутствует», чтобы прервать цикл, если условие истинно. Если ни один элемент не доступен, он останавливается и запрашивает у пользователя один. Задача останавливает цикл и завершается в этом случае, если элемент, полученный из значения, равен нулю. Затем, на следующем шаге, мы вызываем функцию «print()» и передаем ей отчет «Пользователь: готов» и параметры «flush=True».


Затем мы входим в основной процесс, используя «If-name = main_». Мы создаем очередь, вызывая метод «queue()» и сохраняя его в переменной «queue». Далее мы создаем процесс, вызывая пользовательскую функцию «function2». Для этого мы вызываем класс «процесс». Внутри него мы передаем «target=function2» для вызова функции в процессе, передаем аргумент «queue» и сохраняем его в переменной «User_process». Затем процесс начинается с вызова метода start() с переменной User_process. Затем мы повторяем ту же процедуру для вызова «функции 1» в процессе и помещаем ее в переменную «процесс построения». Затем мы вызываем процессы с помощью метода «join()», чтобы дождаться выполнения.


Теперь, когда он представлен, вы можете увидеть операторы обеих функций в выходных данных. Он отображает элементы, которые мы добавили с помощью методов «put()» и «get()» с помощью методов «get()» соответственно.

Вывод

В этой статье мы узнали об очереди многопроцессорной обработки Python. Мы использовали предоставленные иллюстрации. Сначала мы описали, как создать очередь в многопроцессорной среде Python с помощью функции queue(). Затем мы использовали метод «qsize()», чтобы определить размер очереди. Мы также использовали методы очереди put() и get(). Класс сна модуля time и класс random модуля random обсуждались в последнем примере.