2011-06-07 12 views
13

¿Hay algún módulo de Python que me permita ubicar instancias de clases de usuario no triviales en la memoria compartida?Colocación de objetos de Python en la memoria compartida

Con esto me refiero a asignar directamente en la memoria compartida en lugar de encurtido dentro y fuera de ella.

multiprocessing.Value y multiprocessing.Array no funcionarían para mi caso de uso ya que solo parecen soportar tipos primitivos y matrices de los mismos.

Lo único que he encontrado hasta ahora es POSH, pero no ha cambiado en ocho años. Esto sugiere que es súper estable o está desactualizado. Antes de invertir tiempo tratando de hacer que funcione, me gustaría saber si hay alternativas que aún no he descubierto.

Solo necesito esto para trabajar en Linux.

Respuesta

1

Eso es algo difícil. La mejor solución que puedo pensar es decapando sus objetos y usando un c_char_p con multiprocessing.sharedctypes. Debería asegurarse de que no haya bytes nulos en el c_char_p, escapándolos o convirtiéndolos en hexadecimal.

Pensándolo bien, tal vez deberías ir con POSH.

Cuestiones relacionadas