[pyar] Acceso a objetos desde multiples threads + ZODB

Lautaro Woites lauchapc87 en gmail.com
Lun Mayo 5 10:19:09 ART 2014


nadie tiene una punta? :(

laucha


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

>
> 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/20140505/5ee63e90/attachment.html>


More information about the pyar mailing list