ExpertiDict

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

atomic

/əˈtɑːmɪk/substantivo

Tipos como AtomicUsize e AtomicBool, cujas operações são indivisíveis entre threads sem uso de trava. Cada operação recebe um Ordering que define a visibilidade da memória.

Onde usar

Aparece em contadores, flags de parada e estruturas lock-free. Pela facilidade de errar a ordem de memória, na dúvida use SeqCst ou um Mutex.

Em código

use std::sync::atomic::Ordering::Relaxed;
use std::sync::atomic::AtomicUsize;
static N: AtomicUsize = AtomicUsize::new(0);
N.fetch_add(1, Relaxed);
println!("{}", N.load(Relaxed));

Exemplos

Use an atomic counter instead of a mutex.

Use um contador atômico em vez de um mutex.

fetch_add is a single atomic step.

O fetch_add é um único passo atômico.

Cuidado

Atômico não torna uma sequência de operações atômica: ler e depois escrever em dois passos ainda tem corrida lógica.

Sinônimos

tipo atômico

Origem

Do grego atomos, 'indivisível'.

Veja também

Todos os termos de Rust