Skip to content

Latest commit

 

History

History
48 lines (23 loc) · 1.15 KB

0710.md

File metadata and controls

48 lines (23 loc) · 1.15 KB

0710

智能指针:

指向一个数据类型的指针,别人可以调用clone()使用指向同样内存的另一个指针,rust自己维护指向内存的引用数,当引用数清零的时候,才会drop掉该数据。通常与Mutex连用。

thread的move闭包:

thread::spawn(move || {

用此方法创建线程,就可以转移子线程使用的变量所有权。

Arc智能指针的互斥使用:

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

用上面代码所表明的方法声明和使用智能指针,即可实现对同一块数据的互斥使用。

image-20200710113216462

终于完成了rustlings,后面计划为完成练习题。

用rust写了两道codeforces上的算法题,rust代码已经提交到个人仓库中,欢迎大家指正。通过练习我可以更熟练的使用数组和HashMap了。也算是自己的收获。