Vecをthreadで利用するコードを書いた所
cannot borrow as mutableとエラーが出ました。
エラーコード(E0596)にはmutが必要と書いてありますがmutはつけています。
どの様にすればエラーが取れますでしょうか?

use std::vec::Vec;
use std::sync::Arc;
use std::{thread,time};

fn main() {
    let arc: Arc<Vec<i32>> = Arc::new(Vec::new());

    let mut _arc = Arc::clone(&arc);
    thread::spawn(move || {
        for x in 1..=10 {
            _arc.push(x);
        }
    });

    thread::sleep(time::Duration::from_secs(3));
    arc.iter().map(|n| println!("{:?}",n));
}
error[E0596]: cannot borrow data in a `&` reference as mutable
  --> src/main.rs:11:13
   |
11 |             _arc.push(x);
   |             ^^^^ cannot borrow as mutable