指向一个数据类型的指针,别人可以调用clone()使用指向同样内存的另一个指针,rust自己维护指向内存的引用数,当引用数清零的时候,才会drop掉该数据。通常与Mutex连用。
thread::spawn(move || {
用此方法创建线程,就可以转移子线程使用的变量所有权。
use std::sync::{Arc, Mutex};
let status = Arc::new(Mutex::new(JobStatus { jobs_completed: 0 }));
status_shared.lock().unwrap().jobs_completed += 1;
while status.lock().unwrap().jobs_completed < 10
用上面代码所表明的方法声明和使用智能指针,即可实现对同一块数据的互斥使用。
终于完成了rustlings,后面计划为完成练习题。
用rust写了两道codeforces上的算法题,rust代码已经提交到个人仓库中,欢迎大家指正。通过练习我可以更熟练的使用数组和HashMap了。也算是自己的收获。