2017-01-31 3 views
1

У меня есть очередь, которая содержит всю работу, которую я хочу, чтобы группа процессов выполняла. Я хотел бы получить количество элементов, оставшихся в этой очереди, и задавался вопросом, как это сделать? Функция len, похоже, не работает, и хотя я мог перебирать очередь, получая каждый элемент и вернув ее обратно, пока я не поеду в полный круг, я бы предпочел избежать этого по соображениям кодирования.Получить длину Manager.Queue в библиотеке многопроцессорности Python

ответ

2

Если очередь вы говорите о том, multiprocessing.Queue, попробуйте использовать qsize() метод multiprocessing.Queue объектов, но будьте осторожны:

QSize()

Возврат приблизительного размера очереди. Из-за многопоточности/многопроцессорной семантики это число не является надежным.

Обратите внимание, что это может повысить значение NotImplementedError на платформах Unix, например Mac OS X, где функция sem_getvalue() не реализована.

Смежные вопросы