小编Chr*_*ffi的帖子

Rustlings 线程练习,为什么我不取消引用 Mutex(Struct)?

我正在学习 Rust 并且没有线程经验。我正在学习 Rustlings 课程并且我已经解决了这个threads1.rs练习,但我不明白为什么我的Mutex结构不需要被取消引用。

use std::sync::{Arc, Mutex};
use std::thread;
use std::time::Duration;

struct JobStatus {
    jobs_completed: u32,
}

fn main() {
    let status = Arc::new(Mutex::new(JobStatus { jobs_completed: 0 }));
    let status_shared = Arc::clone(&status);
    thread::spawn(move || {
        for _ in 0..10 {
            thread::sleep(Duration::from_millis(250));
            let mut status_shared = status_shared.lock().unwrap();
            status_shared.jobs_completed += 1;  // why not *status_shared?
        }
    });

    let mut jobs_completed: u32;
    loop {
        jobs_completed = status.lock().unwrap().jobs_completed;
        if jobs_completed < 10 {
            println!("waiting... ({} jobs done)", jobs_completed);
            thread::sleep(Duration::from_millis(500)); …
Run Code Online (Sandbox Code Playgroud)

dereference rust

2
推荐指数
2
解决办法
1111
查看次数

标签 统计

dereference ×1

rust ×1