[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