preloader

1 janvier 1 | 2 minutes de lecture
Index du contenu

33.4.2 Procesando los resultados como completados ¿Qué pasa si queremos procesar cada uno de los resultados devueltos por nuestra colección de futuros? Podríamos recorrer la lista de futuros en la sección anterior una vez que todos los resultados han sido generados. Sin embargo, esto significa que tendríamos que esperar a todos. completar antes de procesar la lista. En muchas situaciones nos gustaría procesar los resultados tan pronto como sean generado sin importar si ese es el primero, tercero, último o segundo, etc. La función concurrent.futures.as_completed() funciona de maravilla este; servirá cada futuro a su vez tan pronto como se completen; con toda futuros eventualmente siendo devueltos pero sin garantizar el pedido (solo que como tan pronto como un futuro termine de generar un resultado, estará disponible de inmediato). Por ejemplo, en el siguiente ejemplo, la función is_even() duerme durante un número aleatorio de segundos (asegurando que diferentes invocaciones de esta función tomar diferentes duraciones) luego calcula un resultado: El segundo ciclo for recorrerá cada futuro a medida que completan la impresión el resultado de cada uno, como se muestra a continuación: de concurrent.futures import ThreadPoolExecutor, as_completed desde el tiempo de importación del sueño de randint de importación aleatoria def es_par(n): print(‘Comprobando si’, n, ’es par’) dormir (randint (1, 5)) devuelve cadena(n) + ’ ’ + cadena(n % 2 == 0) imprimir(‘Iniciado’) datos = [1, 2, 3, 4, 5, 6] pool = ThreadPoolExecutor(5) futuros = [] para v en datos: futures.append(pool.submit(is_even, v)) para f en as_completed(futuros): imprimir(f.resultado()) imprimir(‘Terminado’) 402 33 Futuros

comments powered by Disqus

popular post

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Lire plus

Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza

Lire plus

• https://docs.python.org/3/ El sitio principal de documentación de Python 3. Contiene tutoriales, referencias de bibliotecas, guías de configuración e instalación, así como Python cómo-tos • https://docs.

Lire plus