Red de conocimiento informático - Conocimiento del nombre de dominio - Errores de programación simultáneos

Errores de programación simultáneos

Con la popularidad de node.js, creo que todo el mundo ha oído hablar del concepto de programación asincrónica más o menos este año. Aunque el soporte de la comunidad Python para la programación asincrónica es un poco más lento que el de otros lenguajes, asyncio también se ha agregado a Python 3.4, y Python 3.5 acaba de lanzar oficialmente soporte a nivel de sintaxis para async/await. io en .6 también se cambió de una versión temporal a una versión estable. Entendamos el concepto de programación asincrónica y el uso de asyncio basado en Python3.4+.

¿Qué es Xiecheng?

Normalmente, en Python, solemos utilizar multiproceso o multiproceso para implementar programación concurrente. Para tareas informáticas, solemos utilizar multiproceso debido a la existencia de GIL. Para las tareas de IO, podemos usar la programación de subprocesos para permitir que los subprocesos abandonen el GIL al ejecutar tareas de IO, logrando así una concurrencia superficial.

De hecho, para las tareas IO, tenemos otra opción, que es la corrutina, que es "concurrencia" ejecutándose en un solo hilo. En comparación con los subprocesos múltiples, la ventaja de las corrutinas es que eliminan la sobrecarga de conmutación entre subprocesos múltiples y logran una mayor eficiencia operativa. Asyncio en Python también se implementa en base a corrutinas. Antes de entrar en asyncio, primero aprendamos cómo implementar la concurrencia mediante la coordinación del generador en Python.

Ejemplo 1

Veamos un ejemplo sencillo para entender qué son las corrutinas. Los amigos que no conocen los generadores sugieren leer primero las respuestas altamente votadas en Stackoverflow.