Compartir a través de


Eventos asincrónicos y simultaneidad

Importante

Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).

La plataforma Azure Sphere admite varios mecanismos comunes de POSIX y Linux para controlar eventos asincrónicos y simultaneidad, incluidos bucles de eventos y pthreads POSIX.

Los ejemplos muestran cómo usar bucles de eventos de Azure Sphere para administrar escenarios controlados por eventos de forma segura. Por ejemplo, el ejemplo de UART se pausa hasta que el dispositivo recibe datos a través del UART o hasta que se presiona un botón para enviar datos a través del UART.

Los bucles de eventos son una parte estándar de la mayoría de las interfaces gráficas de usuario y un patrón estándar de Linux. Los bucles de eventos de Azure Sphere son una implementación específica de bucles de eventos que permiten a las aplicaciones de Azure Sphere recibir notificaciones del sistema, como eventos relacionados con las actualizaciones.

Se recomienda el patrón de bucle de eventos por los siguientes motivos:

  • Los bucles de eventos de Azure Sphere son necesarios para administrar eventos del sistema, como el sistema operativo y las notificaciones de actualización de aplicaciones. Debe usar bucles de eventos para aplazar las actualizaciones del dispositivo.

  • Los bucles de eventos permiten la programación asincrónica para que varias tareas puedan avanzar simultáneamente.

  • Los bucles de eventos minimizan la sobrecarga de memoria. Cada subproceso lleva la sobrecarga de memoria de una pila independiente. Las pilas de Linux se asignan con memoria virtual y aumentan a petición a un límite superior, por lo que no hay ningún costo fijo. Por lo tanto, los subprocesos son más difíciles de implementar en un sistema restringido, como Azure Sphere MT3620 debido al costo adicional de los recursos.

  • La sincronización entre subprocesos es compleja y puede provocar problemas como interbloqueos. Los bucles de eventos son más sencillos en este sentido.

Aunque se recomienda usar bucles de eventos donde sea posible, si la aplicación requiere subprocesos, Azure Sphere admite pthreads POSIX. Es responsabilidad de la aplicación garantizar la ejecución segura para subprocesos. Las llamadas de aplicación a algunas funciones de bibliotecas de aplicaciones son seguras para subprocesos, pero otras no, como se indica en los archivos de encabezado. Si el archivo de encabezado no menciona la seguridad de subprocesos, debe suponer que la función o biblioteca pertinentes no es segura para subprocesos.