Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

スレッド

Rust は、spawn 関数を介してネイティブ OS スレッドを生成する仕組みを提供しています。この関数の引数はムーブクロージャです。

use std::thread;

const NTHREADS: u32 = 10;

// これは `main` スレッドです
fn main() {
    // 生成された子スレッドを保持するベクターを作成します。
    let mut children = vec![];

    for i in 0..NTHREADS {
        // 別のスレッドを起動します
        children.push(thread::spawn(move || {
            println!("これはスレッド番号 {} です", i);
        }));
    }

    for child in children {
        // スレッドの終了を待機します。結果を返します。
        let _ = child.join();
    }
}

これらのスレッドは OS によってスケジュールされます。