Index du contenu
Un punto importante a tener en cuenta en la descripción anterior es que una tarea no da encienda el procesador a menos que decida hacerlo, por ejemplo, al tener que esperar algo demás. Nunca los interrumpen en medio de una operación; esto evita la problema que pueden tener dos subprocesos cuando un planificador separado divide el tiempo ya que ambos pueden estar compartiendo el mismo recurso. Esto puede simplificar enormemente su código. 34.4 Las palabras clave Async y Await La palabra clave async, introducida en Python 3.7, se usa para marcar una función como algo que usa la palabra clave await (volveremos a esto más adelante ya que es otro uso de la palabra clave async). Una función que usa la palabra clave await se puede ejecutar como una tarea separada y puede ceder el control del procesador cuando llama esperar contra otra función asíncrona y debe esperar a que esa función se com- completo La función asíncrona invocada puede ejecutarse como una tarea separada, etc. Para invocar una función asíncrona, es necesario iniciar el bucle de eventos de E/S asíncrona y para que esa función sea tratada como una tarea por el bucle de eventos. Esto se hace por llamando al método asyncio.run() y pasando la función asincrónica raíz. La función asyncio.run() se introdujo en Python 3.7 (versiones anteriores de Python, como Python 3.6, requería que obtuvieras explícitamente una referencia al Evento Loop y para ejecutar la función asincrónica raíz a través de eso). Un punto a tener en cuenta sobre esto función es que se ha marcado como provisional en Python 3.7. Esto significa que las futuras versiones de Python pueden o no admitir la función o pueden modificar la función de alguna manera. Por lo tanto, debe comprobar la documentación de la versión de Python que está utilizando para ver si el método de ejecución ha sido alterado o no. 34.4.1 Uso de Async y Await Examinaremos un programa Async IO muy simple de arriba hacia abajo. El principal() La función para el programa se da a continuación: def principal() : print(‘Principal - Inicio’) asyncio.run(hacer_algo()) imprimir(‘Principal - Listo’) si nombre == ‘principal’: principal() 34.3 Bucle de eventos de E/S asíncrono 409
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