Hi everyone, I want to implement a minimalist multithreaded model in rust. But according to what I've just read about it, it seems that in rust, the copy operation must be performed whenever executing multiple threads in order to ensure safety. (Seems that I have to use arc/rc/lock stuff always)

Assume the following condition, I got a fixed length vector of f64, and I want to calculate the mean, median and standard deviation of this vector in three threads in parallel. Since each thread only reads data from the vector and not modifying it, ideally there's no locks/copys or other overhead is required.

Here's the pseudo-code, how should I complete it? Thanks.

```
use std::thread;
fn compute_mean(data: &Vec<f64>) -> f64 {
let result:f64;
result
}
fn compute_median(data: &Vec<f64>) -> f64 {
}
fn compute_stddev(data: &Vec<f64>) -> f64 {
}
fn main() {
let data:Vec<f64> = vec![1,2,3,4,5];
let child = thread::spawn(|data| {
compute_mean(data)
});
child.join();
}
```