Вот мой код для попытки Токио:
use std::{thread, time};
async fn one() -> i64 {
let dur = time::Duration::from_secs(1);
thread::sleep(dur);
1
}
#[tokio::main(core_threads=3,max_threads=8)]
async fn main() {
let ins1 = std::time::Instant::now();
let a = one();
let b = one();
let (a, b) = futures::join!(a,b);
println!("a+b: {:?}", a + b);
let ins2 = std::time::Instant::now();
let dur = ins2 - ins1;
println!("time used: {:?}", dur);
}
Я думаю, a
и b
должны работать параллельно в разных потоках, поэтому вывод должен быть
a+b: 2
time used: 1.0s
но я получил
a+b: 2
time used: 2.01022541s
Мой код работает на MacOS Catalina с процессором 6Core i7.