← Rust コース
47. thread::spawn — スレッドを起動する
thread::spawn にクロージャを渡すと、その処理を実行する新しいスレッドが起動します。spawn は JoinHandle を返し、handle.join() を呼ぶとそのスレッドが終わるまで待てます。クロージャの最後の値がスレッドの返り値になり、join().unwrap() で受け取れます。
重い計算を裏で進めながらメインの処理を続けたいときや、複数の仕事を同時にこなしたいときに使います。まずは「起動して、join で待って、結果を受け取る」という基本の流れを押さえましょう。
join を呼ばずに main が先に終わると、スレッドは途中でも打ち切られます。起動したスレッドの完了に責任を持つ、というつもりで handle を必ず join するのが安全な習慣です。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
Rust
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗