[Rust] Arc

勉強した内容

Arc

doc.rust-lang.org

  • スレッドセーフに使えるリファレンスカウンタ。
  • ヒープに確保したデータを、スレッド間で共有できる様になる。
  • std::sync::Arc::clone()Arcのインスタンスを作ると、カウントが1増える。
  • カウントがゼロになると、ヒープに格納したデータを破棄してメモリを解放する。
  • Arcを単独で使って共有できるのはあくまで不変参照なので、可変参照が必要ならMutexRwLockAtomicを使う。
  • Rcよりもメモリアクセスのコストがデカいので、あえてArcを使いたい意図がない場合はRcを使ったほうがいいらしい。