2010-09-21 13 views
9

Tengo algunas tareas en una aplicación que están vinculadas a la CPU y deseo usar el módulo de multiprocesamiento para usar los procesadores de varios núcleos. Realizo una gran tarea (un análisis de archivo de video) y la divido en varias tareas más pequeñas que se ponen en cola y se realizan mediante procesos de trabajo. Lo que quiero saber es cómo informar el progreso del proceso principal a partir de estos procesos de trabajo. Por ejemplo, necesito que envíen "Estoy en 1000ms de mi análisis del archivo 1". ¿Cuál es la mejor manera de hacer esos informes de progreso?Multiproceso de Python: informe de progreso de los procesos

+0

¿Está preguntando sobre el uso del módulo 'logging'? –

+0

No, deseo informe de progreso de los procesos de trabajo para usar en el proceso principal. Utilizo el módulo de "multiprocesamiento". –

+0

El informe de progreso de los procesos de trabajo para el uso en el proceso principal se puede realizar a través del módulo 'logging'. ¿Por qué dices que no se puede hacer? –

Respuesta

14

Recomendaría un multiprocessing.Queue: nada más fácil que los procesos de trabajo para publicar sus actualizaciones (supuestamente como tuplas con los diversos aspectos de sus actualizaciones de progreso) allí, mientras que el proceso principal solo espera esos mensajes y cuando vienen actualizaciones la GUI (o UI textual ;-) para mantener al usuario evaluado del progreso.

+0

Gracias. Creo que es la solución más fácil. Actualmente lo estoy implementando y volveré a preguntar si algo sale mal. Lo siento pero no puedo votar su publicación porque no tengo suficiente reputación. –

+0

@Marc, creo que con 11 o más (y veo que tienes 18 años), puedes votar. Si no funciona para usted, es posible que desee preguntar en meta. –

+0

No tuve suficiente ayer. Ahora he subido tu publicación :) –

Cuestiones relacionadas