タグ

ブックマーク / kenoss.github.io (1)

  • スレッドは join しなくてもよい | 冷たき沢の岩陰の

    この記事は Rust Advent Calendar 2023 22日目の記事です. TL;DR std::thread::JoinHanlde<T> は join() しないとメモリリークすると思い込んでいたがそんなことはなかったな! 問題 Rust はメモリ安全・スレッド安全な言語であることを標榜しており, 多くの場合は安全でないことをしようとするとコンパイルが通りません. 例えば複数のスレッドからあるオブジェクトに対して可変参照 &mut T を通じて変更をすることはできず, 例えば Arc<Mutex<T>> などを利用する必要があります. 一方で安全な (unsafe でない) 操作のみを使っていても防げないものもあります. 典型的なものはメモリリークです. 例えば Rc を使って循環参照を作ってその部分を切り離すと, 切り離された側は永遠に drop されません. (参照カウン

  • 1