🦀/100 Projects/Notes/Source

src/main.rs

View on GitHub
use std::sync::{Arc, Mutex};
use std::thread;
 
fn main() {
    println!("🔐 Mutex + Arc Shared Counter");
 
    let counter = Arc::new(Mutex::new(0));
    let mut handles = vec![];
 
    for i in 0..5 {
        let counter_clone = Arc::clone(&counter);
        let handle = thread::spawn(move || {
            for _ in 0..1000 {
                let mut num = counter_clone.lock().unwrap();
                *num += 1;
            }
            println!("✅ Thread {} finished.", i);
        });
        handles.push(handle);
    }
 
    for handle in handles {
        handle.join().unwrap();
    }
 
    println!("🎯 Final counter value: {}", *counter.lock().unwrap());
}

← Back to folder