什么是Arc

Arc 是atomic Rc的缩写,原子化的Rc智能指针

为什么需要Arc

Arc是有着原子性的操作的Rc

保证原子性就需要一定的性能消耗

Arc跟Rc拥有完全一样的API

Arc保证原子性

  1. use std::sync::Arc;
  2. use std::thread;
  3. fn main(){
  4. let s =Arc::new(String::from("多线程漫游者"));
  5. for _ in 0..10{
  6. let s = Arc::clone(&s);
  7. let handle=thread::spawn(move ||{
  8. println!("{}",s)
  9. });
  10. }
  11. }
RcArc 的区别在于,后者是原子化实现的引用计数,因此是线程安全的,可以用于多线程中共享数据。