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