[pyar] Acceso a objetos desde multiples threads + ZODB

Lautaro Woites lauchapc87 en gmail.com
Mie Abr 30 16:45:03 ART 2014


Corrijo una cosa ...

laucha


El 30 de abril de 2014, 16:38, Lautaro Woites <lauchapc87 en gmail.com>escribió:

> Hola muchachos, como va?
>
> Estuve probando la modificación multithread de un objeto persitente ZODB
> con un ejemplo tonto. Y me encontre con el problema de que si modifico
> un objeto desde varios threads (con exclusión mutua) los datos no se
> persisten.
> Si no hago modificaciones desde otro thread los objetos se persisten
> correctamente.
>
> Mi ejemplo consta de una clase Empresa y una clase Empleado. La clase
> Empresa tiene una lista de Empleados. Ambas clases heredan de Persistent.
>
> *Pseudocodigo del ejemplo:*
>
> mutex = threading.Lock()
>
> def thread_1(enterprise):
>     for e in enterprise.empleados():
>         mutex.aqcuire()
>         e.name = "pepe"
>         mutex.release()
>         time.sleep(random.random())
>
> def main():
>      enterprise = root.enterprise
>      threading.Thread(target=thread_1, args=[enterprise])
>      threading.start()
>      for e in enterprise.empleados():
>          new_age = random.randint(0, 100)
>          mutex.acquire()
>          e.age = new_age
>          mutex.release()
>          time.sleep(random.random())
>
>         <esperar_que termine_el_thread>


>      l.acquire()
>      transaction.commit()
>      l.release()
>
> En el manual de ZODB [0] dicen que el soporte ZODB para apps
> multithreading debería funcionar.
> ¿Tienen idea de si estoy haciendo algo mal? Si quieren puedo subir el
> ejemplo.
>
>
> Muchas gracias!!!
>
> [0]
> http://zodborg.readthedocs.org/en/latest/documentation/guide/transactions.html#multithreaded-zodb-programs
>
> laucha
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140430/0a275d51/attachment-0001.html>


More information about the pyar mailing list