Rust · Intermediário · Inglês · Técnico
RwLock
Trava que permite vários leitores ao mesmo tempo ou um único escritor. Útil para dados lidos com frequência e raramente alterados.
Onde usar
Aparece em caches e configurações. Com escritas frequentes, um Mutex simples costuma ser mais rápido e previsível.
Em código
use std::sync::RwLock;
let l = RwLock::new(vec![1]);
println!("{}", l.read().unwrap().len());
l.write().unwrap().push(2);
println!("{:?}", l.read().unwrap());Exemplos
Use an RwLock, reads far outnumber writes.
Use um RwLock, as leituras superam muito as escritas.
The writer waits for all readers to finish.
O escritor espera todos os leitores terminarem.
Cuidado
Dois locks de leitura na mesma thread podem travar se um escritor estiver esperando; não dá para contar com leituras reentrantes.
Sinônimos
trava de leitura e escrita
Antônimos
Mutex
Origem
Sigla de read-write lock, 'trava de leitura e escrita'.