Progrust Library.

// dictionary

スレッド.

スレッド

Rustの std::thread は、OSレベルのスレッドを使った並行処理を実現します。async/await と異なり、実際に複数のプロセッサコアで並列実行されます。

基本的な使用方法

use std::thread;

fn main() {
    let handle = thread::spawn(|| {
        for i in 1..5 {
            println!("スレッドから: {}", i);
        }
    });
    
    for i in 1..3 {
        println!("メインから: {}", i);
    }
    
    handle.join().unwrap();  // スレッドの終了を待つ
}

データの移動

let v = vec![1, 2, 3];
let handle = thread::spawn(move || {
    println!("{:?}", v);  // move で所有権を移動
});
handle.join().unwrap();

move クロージャを使うことで、所有権(Ownership)をスレッドに移動させます。

スレッド間のチャネル通信や相互排他ロック(Mutex)でのロック管理も参照してください。

この辞書が使われているページ

backlinks 4

  1. 辞書async/await
  2. 辞書Rc<T> (Reference Counting)
  3. 辞書チャネル
  4. 記事Rust 非同期プログラミング完全ガイド