Rust

Concurrency Basics

Threads, thread::spawn, move closures, channels (mpsc), traits Send & Sync, thread safety

20 preguntas de entrevista·
Mid-Level
1

¿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?

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?

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.

4

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

5

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

+17 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