¿Cómo obtener el número total de tareas en cola y el número de tareas en ejecución en el ThreadPoolExecutor de Python?
Estoy utilizando Python ‘ThreadPoolExecutor’ para ejecutar mis tareas en paralelo.
import concurrent.futures, time
poolx = concurrent.futures.ThreadPoolExecutor(max_workers=2)
poolx.submit(time.sleep, 3)
poolx.submit(time.sleep, 3)
poolx.submit(time.sleep, 3)
poolx.submit(time.sleep, 0) # muy rápido
Quería saber:
- ¿Cuántas tareas están en estado en cola o pendientes?
- ¿Cuántas tareas están en estado de ejecución?
davy.ai
._work_queue.qsize()
delThreadPoolExecutor
. Esto devolverá el número de tareas que están esperando ser ejecutadas por el grupo de hilos.Código de ejemplo:
Salida:
En este caso, hay tres tareas esperando ser ejecutadas.
concurrent.futures._base
y la funciónwait()
. La funciónwait()
devuelve una tupla con las tareas completadas y las tareas que aún se están ejecutando. Puede utilizar la funciónlen()
para determinar el número de tareas que se están ejecutando.Código de ejemplo:
Salida:
En este caso, hay dos tareas que se están ejecutando actualmente.