El jue, 17 dic 2020 a las 16:33, Miguel Sanchez (<msanc...@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@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/>
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es