Rust

async/await

funciones async, trait Future, runtime tokio, bloques async, sintaxis .await, Streams, Pin<T>, cancelación, patrones de executor

22 preguntas de entrevista·
Mid-Level
1

¿Qué devuelve en Rust una función declarada con la palabra clave async?

Respuesta

Una función async devuelve automáticamente un tipo que implementa el trait Future. El compilador transforma el cuerpo de la función en una máquina de estados que implementa Future. El valor de retorno no se calcula de inmediato: solo se calculará cuando el Future sea esperado con .await o ejecutado por un runtime.

2

¿Cuál es el rol principal del trait Future en Rust?

Respuesta

El trait Future representa una computación asíncrona que puede no haber terminado todavía. Su método poll permite al executor comprobar si el Future está listo (Poll::Ready) o debe esperar (Poll::Pending). Es el mecanismo fundamental de la asincronía en Rust, que habilita una ejecución no bloqueante y eficiente.

3

¿Por qué es necesario un runtime como tokio para ejecutar código async en Rust?

Respuesta

Rust no incluye un runtime asíncrono en su biblioteca estándar para mantener el lenguaje minimalista y permitir elegir el runtime según las necesidades. Un runtime como tokio proporciona el executor que hace poll de los Futures, el scheduler para gestionar las tareas y las I/O asíncronas. Sin un runtime, los Futures nunca se ejecutarían.

4

¿Cuál es la diferencia entre un async block y una async function en Rust?

5

¿Qué ocurre cuando se usa .await sobre un Future en Rust?

+19 preguntas de entrevista

Domina Rust para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis