У меня есть очередь, которая содержит всю работу, которую я хочу, чтобы группа процессов выполняла. Я хотел бы получить количество элементов, оставшихся в этой очереди, и задавался вопросом, как это сделать? Функция len, похоже, не работает, и хотя я мог перебирать очередь, получая каждый элемент и вернув ее обратно, пока я не поеду в полный круг, я бы предпочел избежать этого по соображениям кодирования.Получить длину Manager.Queue в библиотеке многопроцессорности Python
1
A
ответ
2
Если очередь вы говорите о том, multiprocessing.Queue
, попробуйте использовать qsize()
метод multiprocessing.Queue
объектов, но будьте осторожны:
QSize()
Возврат приблизительного размера очереди. Из-за многопоточности/многопроцессорной семантики это число не является надежным.
Обратите внимание, что это может повысить значение NotImplementedError на платформах Unix, например Mac OS X, где функция sem_getvalue() не реализована.