ExpertiDict

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

RwLock

/ɑːɹ ˈdʌbəljuː lɑːk/substantivo

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'.

Veja também

Todos os termos de Rust