Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Multiprocess (memoria compartida) en Python 2.7 x32
#1
Hola,

he estado echando un vistazo a la entrada que publicaste acerca del multiproceso en Python:

http://recursospython.com/guias-y-manual...-procesos/

El caso es que he estado leyendo sobre el tema pero no lo pillo bien de momento.
No logro acceder desde un nuevo proceso a los atributos de una clase que ya ha sido creada.
Lo que me interesa es la sección en la que hablas de la 'Memoria compartida' y entiendo como mandas el valor de una variable a un proceso, pero cuando intento acceder a una variable (en mi caso atributo de la clase que actua como contador de un callback) que está definida en una clase que ya ha sido creada previamente, el valor me resulta 0.

No se si me explico bien...
Lo que necesito es crear un proceso independiente que acceda cada cierto tiempo a una variable que está dentro de una clase, para refrescar los datos de la GUI.

Muchas gracias y felicidades por el blog!
Responder
#2
Hola Ruben. ¿Podrías crear un mínimo código que reproduzca tu problema? A simple vista te preguntaría si el atributo de tu clase es un tipo de C (c_int, c_long, c_char, etc.), ya que es necesario para utilizarlo como memoria compartida.

Por otra parte, ¿con qué librería estás trabajando para el diseño de tu GUI? Generalmente en estos casos es más conveniente usar un hilo, a menos que la tarea que tengas que realizar sea lo suficientemente "pesada" como para pasarla a otro proceso.

Saludos.
Responder
#3
(21-03-2016, 11:13 PM)Francisco escribió: Hola Ruben. ¿Podrías crear un mínimo código que reproduzca tu problema? A simple vista te preguntaría si el atributo de tu clase es un tipo de C (c_int, c_long, c_char, etc.), ya que es necesario para utilizarlo como memoria compartida.

Por otra parte, ¿con qué librería estás trabajando para el diseño de tu GUI? Generalmente en estos casos es más conveniente usar un hilo, a menos que la tarea que tengas que realizar sea lo suficientemente "pesada" como para pasarla a otro proceso.

Saludos.


Hola Francisco, estoy usando PyAudio para el audio y WxPython para la GUI. Intento crear un proceso independiente para cualquiera de los dos (me da igual cual de los dos), he probado con los hilos (threads) pero necesito refrescar la pantalla constantemente con datos que recibe de el callback de audio y no es suficiente, me da problemas de rendimiento, cada vez que refresca algun dato de la GUI me bloquea el callback de audio y suenan clicks. Es por eso que necesito crear un proceso independiente para PyAudio o para WxPython....en ello estoy trabajando, haciendo pruebas. Lo ideal sería que esas librerías tuviesen alguna opción para poder ejecutarlas como proceso independiente, y no como hilo. En cuanto pueda reducir código para mostrarlo lo publicaré, a ver si me puedes ayudar. Muchas gracias!
Responder
#4
Si mal no recuerdo PyAudio por su cuenta llama a tu callback en un hilo diferente. Espero el código y vemos cómo podemos hacerlo congeniar con wxPython.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)