

# Tiempos de ejecución de instancias administradas de Lambda
<a name="lambda-managed-instances-runtimes"></a>

Lambda procesa las solicitudes de forma diferente cuando se utilizan instancias administradas de Lambda. En lugar de gestionar las solicitudes en cada entorno de ejecución de forma secuencial, las instancias administradas de Lambda procesan varias solicitudes de forma simultánea en cada entorno de ejecución. Este cambio en el modelo de ejecución significa que las funciones que utilizan instancias administradas de Lambda deben tener en cuenta la seguridad de los subprocesos, la administración del estado y el aislamiento del contexto, problemas que no surgen en el modelo de concurrencia única de Lambda (predeterminado). Además, la implementación de concurrencia múltiple varía según los tiempos de ejecución.

## Lenguajes admitidos
<a name="lambda-managed-instances-supported-runtimes"></a>

Las instancias administradas de Lambda se pueden usar con los siguientes lenguajes de programación y tiempos de ejecución:
+ **Java:** Java 21 y versiones posteriores.
+ **Python:** Python 3.13 y versiones posteriores.
+ **Node.js:** Node.js 22 y versiones posteriores.
+ **.NET:** .NET 8 y versiones posteriores.
+ **Rust:** compatible con el tiempo de ejecución solo del sistema operativo `provided.al2023` y versiones posteriores.

## Consideraciones específicas del lenguaje
<a name="lambda-managed-instances-runtime-considerations"></a>

Cada lenguaje de programación implementa la concurrencia múltiple de forma diferente. Debe comprender cómo se implementa la concurrencia múltiple en el lenguaje de programación que elija para aplicar las mejores prácticas de concurrencia adecuadas.

**Java**

Utiliza un único proceso con subprocesos del sistema operativo para la concurrencia. Varios subprocesos ejecutan el método del controlador simultáneamente, lo que requiere una gestión segura de los recursos compartidos.

**Python**

Utiliza varios procesos de Python en los que cada solicitud simultánea se ejecuta en un proceso independiente. Esto protege contra la mayoría de los problemas de concurrencia, aunque hay que ejercer precaución con los recursos compartidos, como el directorio `/tmp`.

**Node.js**

Utiliza [subprocesos de trabajo](https://nodejs.org/api/worker_threads.html) con ejecución asíncrona. Las solicitudes simultáneas se distribuyen entre los subprocesos de trabajo, y cada subproceso de trabajo también puede gestionar las solicitudes simultáneas de forma asíncrona, lo que requiere una gestión segura de los recursos compartidos y del estado.

**.NET**

Utiliza tareas de .NET con procesamiento asíncrono de varias solicitudes simultáneas. Requiere una gestión segura de los recursos compartidos y del estado.

**Rust**

Utiliza un único proceso con tareas asíncronas impulsadas por [Tokio](https://tokio.rs/). El controlador debe ser `Clone` \+ `Send`.

## Siguientes pasos
<a name="lambda-managed-instances-runtime-next-steps"></a>

Para obtener información detallada sobre cada tiempo de ejecución, consulte los siguientes temas:
+ [Tiempo de ejecución de Java para instancias administradas de Lambda](lambda-managed-instances-java-runtime.md)
+ [Tiempo de ejecución de Node.js para instancias administradas de Lambda](lambda-managed-instances-nodejs-runtime.md)
+ [Tiempo de ejecución de Python para instancias administradas de Lambda](lambda-managed-instances-python-runtime.md)
+ [Tiempo de ejecución de .NET para instancias administradas de Lambda](lambda-managed-instances-dotnet-runtime.md)
+ [Compatibilidad de Rust con instancias administradas de Lambda](lambda-managed-instances-rust.md)