O Mutex
é uma estrutura de dados contêiner comumente mantida por ponteiros inteligentes que recebe os dados e nos permite emprestar referências mutáveis e imutáveis aos dados que estão dentro. Isso evita o abuso do empréstimo fazendo com que o sistema operacional restrinja o acesso aos dados a apenas uma thread de CPU por vez, bloqueando as outras threads até que a thread original seja concluída com seu empréstimo bloqueado.
O multithreading está além do escopo do Tour por Rust, mas Mutex
é uma parte fundamental da orquestração de várias threads de CPU acessando os mesmos dados.
Há um ponteiro inteligente especial Arc
que é idêntico aoRc
, exceto pelo uso de incrementos thread-safe de contagens de referência. Frequentemente é usado para ter muitas referências ao mesmo Mutex
.