preloader

1 janvier 1 | 2 minutes de lecture
Index du contenu

En este ejemplo, la función trabajador() está envuelta dentro de un objeto de tarea que es devuelto de la llamada asyncio.create_task(worker()). Una función (print_it()) se registra como una devolución de llamada en la tarea usando el función asyncio.create_task(trabajador()). Tenga en cuenta que el trabajador se pasa la tarea que ha completado como un parámetro. Esto le permite obtener información de la tarea como cualquier resultado generado. En este ejemplo, la función asíncrona do_something() espera explícitamente en el tarea a completar. Una vez que esto sucede, se utilizan varios métodos diferentes para obtener información sobre la tarea (como si se canceló o no). Otro punto a tener en cuenta sobre este listado es que en la función trabajador() haber agregado una espera usando la función asyncio.sleep(1); esto permite que trabajador a dormir y esperar a que se complete la tarea desencadenada; es un IO asíncrono alternativa a time.sleep(1). La salida de este programa es: Principal - Inicio do_something: crea una tarea para el trabajador do_something - agregar una devolución de llamada trabajador - tomará algún tiempo trabajador - Hecho imprimir_it resultado: 42 hacer_algo - tarea.cancelado(): Falso hacer_algo - tarea.hecho(): Verdadero hacer_algo - tarea.resultado(): 42 hacer_algo - tarea.excepción(): Ninguno hacer_algo - terminado Principal - Listo definición asíncrona hacer_algo(): print(‘hacer_algo - crear tarea para el trabajador’) tarea = asyncio.create_task(trabajador()) print(‘hacer_algo - agregar una devolución de llamada’) tarea.add_done_callback(print_it) esperar tarea

Información sobre la tarea

print(‘hacer_algo - tarea.cancelado():’, tarea.cancelado()) print(‘hacer_algo - tarea.hecho():’, tarea.hecho()) print(‘hacer_algo - tarea.resultado():’, tarea.resultado()) print(‘hacer_algo - tarea.excepción():’, tarea.excepción()) print(‘hacer_algo - terminado’) def principal() : print(‘Principal - Inicio’) asyncio.run(hacer_algo()) imprimir(‘Principal - Listo’) si nombre == ‘principal’: principal() 34.5 Tareas de E/S asíncronas 413

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