En la documentación viene explicado: http://docs.python.org/2/library/queue.html
queue.put se bloquea cuando el queue alcanza el numero máximo de slots disponibles. También existe queue.put_nowait que no se bloquea pero lanzara una excepción si el queue supera el limite. No creo que una cola sea un problema, si quieres acelerar lo que sea que estés haciendo te recomiendo primero hacer profiling, ver cual o cuales son tus cuellos de botella y mejorar esos puntos. El 17 de enero de 2014, 6:40, Daπid <[email protected]> escribió: > Hola: > > Tengo una aplicación que genera datos en un pool de ocho trabajadores > (joblib.Parallel) que son almacenados en una base de datos (Pytables) por > un proceso paralelo (multiprocessing.Process). Los datos son transferidos a > través de una cola. > > Ahora bien: el bucle que genera los datos es muy rápido, hay datos nuevos > cada milésima de segundo. Mi pregunta es, cuando intento escribir en la > cola, ¿se produce un bloqueo? ¿El resto de trabajadores tiene que esperar > para escribir sus resultados? Al haber tantos procesos leyendo y > escribiendo en la cola con tanta frecuencia, puede ser un factor importante. > > El objeto que pongo en la cola es: > > [(etiqueta1, etiqueta2), [tiempo_a, valor1_a, valor2_a, valor3_a, (i1_a, > i2_a)], [tiempo_b, valor1_b, valor2_b, valor3_b, (i1_b, i2_b)] ...] > > donde el número de listas es variable (~10) y el proceso que guarda > desempaqueta los valores para guardarlos en la tabla > > etiqueta1, etiqueta2, tiempo_a, valor1_a, valor2_a, valor3_a, i1_a, i2_a > etiqueta1, etiqueta2, tiempo_b, valor1_b, valor2_b, valor3_b, i1_b, i2_b > ... > > ¿Hay alguna forma más eficiente de hacer esta transferencia? Las etiquetas > serán guardadas como enteros sin sign de 32 bits, valores y tiempo floats > de 32 bits e i1 e i2, float64. > > > /David. > > _______________________________________________ > Python-es mailing list > [email protected] > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > >
_______________________________________________ Python-es mailing list [email protected] https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
