Многопоточность Python: как я могу разделить очередь аргументов между уже существующими рабочими объектами?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Многопоточность Python: как я могу разделить очередь аргументов между уже существующими рабочими объектами?

Сообщение Anonymous »

У меня есть 5 рабочих («процессоров»), которые должны обрабатывать 100 аргументов (возможно, в какой-то очереди?), используя определенный метод (

Код: Выделить всё

process()). Я хочу, чтобы 5 «процессоров» выполнялись параллельно. Я повторно искал как concurrent.futures
, так и multiprocessing, но не нашел ни одного подобного примера

Код: Выделить всё

import time
import numpy as np

class Processor :

def __init__(self, name) :
self.name = name

def process(self, arg) :
print(f'{name} : processing {arg}...')
time.sleep(arg)

l_processors = [Processor(f'Processor_{i}') for i in range(5)]
l_arguments = list(range(100))
np.random.shuffle(l_arguments)

# ... what to write beyond this point ?
Есть идеи?
Заранее спасибо за любой ответ.
PS:
  • Мне нужно использовать эти 5 объектов процессора, я не могу использовать уже готовый «ProcessorPool(n_workers=5)»
  • Я не хочу заранее назначать каждому рабочему «Процессору» список аргументов. Я не могу знать заранее, сколько времени займет каждый аргумент (с точки зрения времени). Вместо этого, когда рабочий освобождается, он должен просмотреть очередь аргументов и выбрать следующий.


Подробнее здесь: https://stackoverflow.com/questions/785 ... eady-exist
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»