Rust

Concurrency Basics

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

20 perguntas de entrevista·
Mid-Level
1

Qual função deve ser usada para criar uma nova thread em Rust?

Resposta

A função thread::spawn do módulo std::thread cria uma nova thread de execução. Ela recebe uma closure como parâmetro e retorna um JoinHandle que permite aguardar o término da thread usando o método join(). Esta função é o principal ponto de entrada para programação concorrente baseada em threads em Rust.

2

O que o método join() retorna quando chamado em um JoinHandle?

Resposta

O método join() retorna um Result<T, E> onde T é o tipo de retorno da closure da thread. Se a thread terminar normalmente, você obtém Ok(valor). Se a thread sofreu panic, você obtém Err com as informações do panic. Isso permite recuperar os resultados da thread ou tratar seus erros de forma segura.

3

Por que usar a palavra-chave move com uma closure passada para thread::spawn?

Resposta

A palavra-chave move força a closure a tomar ownership das variáveis que captura em vez de tomá-las emprestadas. Isso é essencial com thread::spawn porque a nova thread pode viver mais que o escopo onde as variáveis são definidas. Sem move, o compilador recusa porque não pode garantir que as referências sejam válidas durante todo o tempo de vida da thread.

4

Qual é o papel do trait Send em Rust?

5

Qual é o papel do trait Sync em Rust?

+17 perguntas de entrevista

Domine Rust para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis