[Python-es] Un problema del futuro en el presente
Chema Cortes
pych3m4 en gmail.com
Jue Dic 17 14:21:51 EST 2020
El jue, 17 dic 2020 a las 16:33, Miguel Sanchez (<msanchez en uninet.edu>)
escribió:
> Hola:
>
>
> Estoy haciendo pruebas de unas classes que he creado, para ver como
> funcionan en concurrencia.
>
> Estoy usando concurrent.futures (python 3.9.1) y no tengo mucha
> experiencia (ninguna) con ese módulo.
>
> He encontrado algo que no entiendo:
>
>
> import concurrent.futures
> import time
>
> def espera():
> time.sleep(5)
> return 'fin'
>
>
> with concurrent.futures.ThreadPoolExecutor(max_workers=None) as executor:
> future_to_hazlo = {executor.submit(espera): 'la función espera'}
> for future in concurrent.futures.as_completed(future_to_hazlo):
> quien = future_to_hazlo[future]
> try:
> print(f'{quien} terminó con {future.result(3)}')
> except Exception as exc:
> print(f'{quien} ha generado una excepcion: {exc}')
> if future.done():
> del future._exception
>
>
> Esto no debería lanzar una excepción TimeoutError???
>
>
Los *futuros* se completan en el iterador .as_completed(), y es ahí donde
debería estar el timeout. Para cuando se ejecuta future.result(3) el futuro
ya está resuelto y de nada sirve añadir un timeout.
Saludos.
>
> Saludos y gracias por la ayuda
>
>
> Miguel
>
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
--
Hyperreals *R "Quarks, bits y otras criaturas infinitesimales":
https://blog.ch3m4.org
Buscador Python Hispano: http://busca.ch3m4.org
<https://blog.ch3m4.org/pages/busqueda-python-es/>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://mail.python.org/pipermail/python-es/attachments/20201217/f1ed0d18/attachment.html>
Más información sobre la lista de distribución Python-es