Почему мой код Tokio не может работать параллельно - PullRequest
0 голосов
/ 08 марта 2020

Вот мой код для попытки Токио:

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.

...