什么是Arc
Arc 是atomic Rc的缩写,原子化的Rc智能指针
为什么需要Arc
Arc是有着原子性的操作的Rc
保证原子性就需要一定的性能消耗
Arc跟Rc拥有完全一样的API
Arc保证原子性
Rc 和 Arc 的区别在于,后者是原子化实现的引用计数,因此是线程安全的,可以用于多线程中共享数据。
use std::sync::Arc;
use std::thread;
fn main(){
let s =Arc::new(String::from("多线程漫游者"));
for _ in 0..10{
let s = Arc::clone(&s);
let handle=thread::spawn(move ||{
println!("{}",s)
});
}
}