私はこれがうまくいくと思います：
std :: threadを使用してください。

fn main（）{
    mut count = 0;
    mutスレッド= vec！[];

    _ in 0..2 {
        let thread = thread :: spawn（move || {
            mut local_count = 0とします。
            while local_count <10 {
                //クリティカルセクション
                Atomic :: fetch_add（＆mut count、1、Ordering :: lasyed）;
                println！（ "thread {}：count = {}"、thread :: current（）。id（）、count）;
                local_count += 1;
            }
        }）;
        threads.push（thread）;
    }

    スレッドのスレッドの場合{
        thread.join（）。unwrap（）;
    }
}
I think this will work:
use std::thread;

fn main() {
    let mut count = 0;
    let mut threads = vec![];

    for _ in 0..2 {
        let thread = thread::spawn(move || {
            let mut local_count = 0;
            while local_count < 10 {
                // Critical section
                atomic::fetch_add(&mut count, 1, Ordering::Relaxed);
                println!("Thread {}: count = {}", thread::current().id(), count);
                local_count += 1;
            }
        });
        threads.push(thread);
    }

    for thread in threads {
        thread.join().unwrap();
    }
}