Указатель содержания
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
popular post
Temas de Pregrado en Ciencias de la Computación Principiantes Guía de Python 3 Programación Juan caza
Прочитайте большеTemas de Pregrado en Ciencias de la Computación Principiantes Guía de Python 3 Programación Juan caza
Прочитайте большеgratis. Para la mayor parte del trabajo que hago en Python, la versión Community es más que adecuado y por lo tanto es la versión que puede descargar e instalar (nota con el Versión profesional, obtiene una prueba gratuita, pero deberá pagar la versión completa versión al final de la versión de prueba o vuelva a instalar la versión de la Comunidad en ese momento).
Прочитайте больше