ExpertiDict

Rust · Intermediário · Inglês · Técnico

Sync

/sɪŋk/substantivo

Trait marcador que indica que referências &T ao tipo podem ser compartilhadas entre threads com segurança. T é Sync exatamente quando &T é Send.

Onde usar

Aparece em erros como 'cannot be shared between threads safely'. Tipos com mutabilidade interior sem trava, como Cell e RefCell, não são Sync.

Em código

use std::cell::Cell;
fn so_sync<T: Sync>(_t: &T) {}
so_sync(&5);
so_sync(&String::new());
// so_sync(&Cell::new(1)); Cell não é Sync

Exemplos

RefCell is not Sync, wrap it in a Mutex.

RefCell não é Sync, envolva em um Mutex.

Static data must be Sync.

Dados static precisam ser Sync.

Cuidado

Não confunda com o sync de sincronização: aqui é uma propriedade do tipo, não uma operação.

Antônimos

Send

Veja também

Todos os termos de Rust