Tag: очереди

Проверка пустой очереди в многопроцессорной обработке python

У меня есть программа, использующая многопроцессорность пакетов python и Queue. Одна из моих функций имеет такую ​​структуру: from multiprocessing import Process, Queue def foo(queue): while True: try: a = queue.get(block = False) doAndPrintStuff(a) except: print "the end" break if __name__ == "__main__" nthreads = 4 queue = Queue.Queue() # put stuff in the queue here […]

Задержка инициализации очереди Python

имеют некоторый код python, который использует «многопроцессорные» очереди для обработки некоторой информации в постоянных отдельных процессах. Я измеряю время, необходимое для обработки информации в каждом Процессе. Странно, что первый обработанный предмет занимает примерно 10 раз дольше, чем любой другой предмет, который следует за ним, примерно на 5 секунд по сравнению с последующими пунктами около 0,5 […]

Странное поведение блокировки с многопроцессорной очередью python put () и get ()

Я написал класс в python 2.7 (под Linux), который использует несколько процессов для асинхронного управления базой данных. Я столкнулся с очень странным поведением блокировки при использовании multiprocessing.Queue.put() и multiprocessing.Queue.get() которые я не могу объяснить. Вот упрощенная версия того, что я делаю: from multiprocessing import Process, Queue class MyDB(object): def __init__(self): self.inqueue = Queue() p1 = […]

Многопроцессорность Python.Queue vs multiprocessing.manager (). Queue ()

У меня есть простая задача: def worker(queue): while True: try: _ = queue.get_nowait() except Queue.Empty: break if __name__ == '__main__': manager = multiprocessing.Manager() # queue = multiprocessing.Queue() queue = manager.Queue() for i in range(5): queue.put(i) processes = [] for i in range(2): proc = multiprocessing.Process(target=worker, args=(queue,)) processes.append(proc) proc.start() for proc in processes: proc.join() Кажется, что […]

Пакетирование и очередность на веб-сервере реального времени

Мне нужен веб-сервер, который направляет входящие запросы на работу с базовыми рабочими группами, выгружая их каждые 0,5 секунды или когда у них есть 50 запросов HTTP в зависимости от того, что произойдет раньше. Что будет хорошим способом реализовать его в python / торнадо или на любом другом языке? Я думаю, это опубликовать входящие запросы в […]

многопроцессорность. Последовательные взаимоблокировки после смерти «читателя»

Я играл с многопроцессорным пакетом и заметил, что очередь может быть заблокирована для чтения, когда: Процесс «читатель» использует get с таймаутом > 0: self.queue.get(timeout=3) «читатель» умирает, а get блокируется из-за таймаута . После этого очередь заблокирована навсегда. Приложение, демонстрирующее проблему Я создаю два дочерних процесса «Рабочий» (помещает в очередь) и «Получатель» (получая из очереди). Также […]

Очереди Tensorflow QueueBase.enqueue_many сохраняют порядок по потокам?

Предположим, что два потока одновременно пытаются вставлять N тензоров в каждый экземпляр FIFOQueue. То есть они звонят queue_instance.enqueue_many(T) где T – список тензоров длины N Обозначим каждый тензор из первого потока как T1_1 до T1_N , а T2_1 – T2_N для второго потока. Когда все будет сказано и сделано (оба вызова в enqueue_many завершены), будет […]

Многопроцессорная очередь Python: что делать, когда процесс приема завершается?

В основном у меня есть следующий код: import multiprocessing import time class MyProcess(multiprocessing.Process): def __init__(self, ): multiprocessing.Process.__init__(self) self.queue = multiprocessing.Queue() def run(self): print "Subprocess starting!" time.sleep(4) print "Subprocess exiting!" def addToQueue(self): starttime = time.time() count=0 print "Adding stuff to queue…" while time.time()-starttime < 4: self.queue.put("string") count += 1 print "Added %d objects!" % count #self.queue.close() […]

Tensorflow: пакетные очереди ввода, а затем изменение источника очереди

У меня есть модель, которая работает над набором изображений и вычисляет некоторую статистику по ним, используя – для простоты говорят, что она выводит только среднее изображение из набора (это на практике больше, чем на практике). У меня есть несколько каталогов, содержащих изображения, и я хочу получить вывод из каждого каталога. Каждый каталог имеет переменное количество […]

Реализация специального типа многопроцессорной очереди в Python

Представьте инвертированное двоичное дерево с узлами A, B, C, D, E, F на уровне 0. Узлы G, H, I на уровне 1, узел J на ​​уровне 2 и узел K на уровне 3. Уровень 1: G = func (A, B), H = func (C, D), I = func (E, F) Уровень 2: J = func […]

Python - лучший язык программирования в мире.