Index du contenu
Podemos convertir la invocación de este método en un Futuro. Para ello utilizamos un ThreadPoolExecutor importado del módulo concurrent.futures. Luego enviaremos la función de trabajo al grupo para su ejecución. Esto devuelve un referencia a un Futuro que podemos usar para obtener el resultado: desde el tiempo de importación del sueño de concurrent.futures import ThreadPoolExecutor print(‘Configurando ThreadPoolExecutor’) pool = ThreadPoolExecutor(1)
Enviar la función del grupo para que se ejecute
al mismo tiempo - obtener un futuro de la piscina
print(‘Enviando al trabajador al pool’) futuro = pool.submit(trabajador, ‘A’) print(‘Obtuve una referencia al objeto futuro’, futuro)
Obtenga el resultado del futuro - espere si es necesario
print(‘futuro.resultado():’, futuro.resultado()) imprimir(‘Terminado’) La salida de esto es: Configuración de ThreadPoolExecutor Sometiendo al trabajador a la piscina AAOobtuvo una referencia al objeto futuro <Futuro en 0x1086ea8d0 estado=en ejecución> AAAAAAAAfuturo.resultado(): 9 Hecho Observe cómo la salida del programa principal y el trabajador se entrelazan con se imprimen dos ‘A’ antes del mensaje que comienza con ‘Obtuvo un…’. En este caso, se crea un nuevo ThreadPoolExecutor con un hilo en el grupo (por lo general, habría varios subprocesos en el grupo, pero uno se está utilizando aquí con fines ilustrativos). El método de envío () se usa luego para enviar el trabajador de función con el parámetro ‘A’ al ThreadPoolExecutor para que programe la ejecución del función. El método submit() devuelve un objeto Future. El programa principal luego espera a que el objeto futuro devuelva un resultado (llamando el método result() en el futuro). Este método también puede tomar un tiempo de espera. Para cambiar este ejemplo para usar Procesos en lugar de Subprocesos, todo lo que se necesita es para cambiar el ejecutor del grupo a un ProcessPoolExecutor: 398 33 Futuros
popular post
Temas de Pregrado en Ciencias de la Computación Guía avanzada a Python 3 Programación Juan caza
Lire plusTemas 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