为什么我的Tokio代码无法并行运行

时间:2020-03-08 14:06:53

标签: rust rust-tokio

这是我尝试tokio的代码:

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);
}

我认为ab应该在不同的线程中并行运行,因此输出应该是

a+b: 2
time used: 1.0s

但是我得到的是

a+b: 2
time used: 2.01022541s

我的代码在具有6Core i7 CPU的macOS Catalina上运行。

0 个答案:

没有答案