[Python-es] Problema con Queue.put

Daπid davidmenhur en gmail.com
Dom Mayo 6 21:15:26 CEST 2012


Hola. Tengo un programa en paralelo como este:

http://pastebin.com/tVkWqMiC

Ejecuto una función para diferentes valores del parámetro en
diferentes procesos, que guardan el resultado en la cola q. O al
menos, eso es lo que pretendo, porque en la cola nunca entra nada. Las
cosas se están calculando correctamente, porque se llegan a imprimir
en pantalla, y si justo después añado un q.qsize(), me devuelve 1. Sin
embargo, siempre que compruebe el tamaño de la cola desde el hilo
principal, me da 0, aunque la función de borrado esté desactivada (lo
que entra en la cola nunca sale).

En algún sitio debo de estar cometiendo un error de bulto, pero no soy
capaz de verlo. Ni siquiera los ejemplos triviales de la documentación
me funcionan: http://docs.python.org/library/multiprocessing.html

Como último intento, probé a escribir en el fichero directamente desde
calculate() (incluyendo una espera aleatoria para evitar colisiones),
pero el archivo seguía vacío.

http://pastebin.com/A90dNDZr


Estoy usando Python 2.6 sobre Windows XP.

¿Alguien puede aclararme algo?


Más información sobre la lista de distribución Python-es