[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