
async/await
funciones async, trait Future, runtime tokio, bloques async, sintaxis .await, Streams, Pin<T>, cancelación, patrones de executor
1¿Qué devuelve en Rust una función declarada con la palabra clave async?
¿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?
¿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?
¿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.
¿Cuál es la diferencia entre un async block y una async function en Rust?
¿Qué ocurre cuando se usa .await sobre un Future en Rust?
+19 preguntas de entrevista
Otros temas de entrevista Rust
Fundamentos de Rust
Ownership & Borrowing
Structs & Enums
Manejo de errores
Colecciones
Módulos y Paquetes
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Serde y serialización
Unsafe Rust
Traits avanzados
Lifetimes Avanzados
Type System
Tokio & Async I/O
Optimización de Rendimiento
Memory Management
Web Frameworks
Database Integration
Patrones de diseño en Rust
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