
Concurrency Basics
Threads, thread::spawn, move closures, channels (mpsc), traits Send & Sync, thread safety
1¿Qué función se debe usar para crear un nuevo thread en Rust?
¿Qué función se debe usar para crear un nuevo thread en Rust?
Respuesta
La función thread::spawn del módulo std::thread crea un nuevo thread de ejecución. Toma una closure como parámetro y retorna un JoinHandle que permite esperar a que el thread termine mediante el método join(). Esta función es el punto de entrada principal para la programación concurrente basada en threads en Rust.
2¿Qué retorna el método join() cuando se llama sobre un JoinHandle?
¿Qué retorna el método join() cuando se llama sobre un JoinHandle?
Respuesta
El método join() retorna un Result<T, E> donde T es el tipo de retorno de la closure del thread. Si el thread termina normalmente, se obtiene Ok(valor). Si el thread sufrió un panic, se obtiene Err con la información del panic. Esto permite recuperar los resultados del thread o gestionar sus errores de forma segura.
3¿Por qué usar la palabra clave move con una closure pasada a thread::spawn?
¿Por qué usar la palabra clave move con una closure pasada a thread::spawn?
Respuesta
La palabra clave move obliga a la closure a tomar ownership de las variables que captura en lugar de tomarlas prestadas. Esto es esencial con thread::spawn porque el nuevo thread puede vivir más tiempo que el ámbito donde se definen las variables. Sin move, el compilador lo rechaza porque no puede garantizar que las referencias sean válidas durante toda la vida del thread.
¿Cuál es el rol del trait Send en Rust?
¿Cuál es el rol del trait Sync en Rust?
+17 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
async/await
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