函数在rust中等待后不执行

函数在rust中等待后不执行,rust,rust-tokio,tokio,Rust,Rust Tokio,Tokio,我运行了下面显示的代码。但是, 我不认为那部分做了东京.spawn的部分正在被执行。 这与调用函数时I.wait这一事实无关。 我怎样才能解决这个问题 pub异步fn多功能( chainlen:usize,floatlen:usize,atom_num:usize, c:&Array2,v:&Array2, )->(阵列2,阵列3){ 让ca_features=Arc::new(Mutex::new(Array2:::零((atom_num/4+1,(2*chainlen+floatlen)*8

我运行了下面显示的代码。但是, 我不认为那部分做了东京.spawn的部分正在被执行。 这与调用函数时I
.wait
这一事实无关。 我怎样才能解决这个问题

pub异步fn多功能(
chainlen:usize,floatlen:usize,atom_num:usize,
c:&Array2,v:&Array2,
)->(阵列2,阵列3){
让ca_features=Arc::new(Mutex::new(Array2:::零((atom_num/4+1,(2*chainlen+floatlen)*8+3));
让ca_basics=Arc::new(Mutex::new(Array3:::零((atom_num/4+1,3,3)));
对于0..atom\u num中的atom\u id{
让ca_features=ca_features.clone();
让ca_basics=ca_basics.clone();
东京:产卵(异步移动){
让mut ca_features=ca_features.lock().unwrap();
让mut ca_basics=ca_basics.lock().unwrap();
设basic=now\u basic\u vec(atom\u id,atom\u num,c);
ca_basics.index_axis_mut(axis(0),atom_id/4)。赋值(&basic);
现在让我们看一下特征=特征(atom\u id、chainlen、floatlen、atom\u num和basic、c、v);
ca_features.index_axis_mut(axis(0),atom_id/4)。赋值(&now_feature);
}).等待;
}
(圆弧::try_unwrap(ca_功能)。unwrap().进入内部().展开(),圆弧::try_unwrap(ca_基本)。unwrap().进入内部().展开(),)
}
#[tokio::main]
fn main(){
设res=multi_features(50、50、1253、&c和&v)。wait;//此函数永远不会结束
}

首先为什么它是异步的?它里面没有一个
wait
,传递给
tokio::spawn
的块中也没有。此外,如果您试图在这里实现任何类型的并行性,您需要收集
任务句柄,例如
Vec
FuturesUnordered
中的
并在该集合上运行
join\u all
。否则,您将按顺序执行任务。您能否在帖子中添加一个完整的示例,我们可以自己运行并检查它?Tokio main函数应该是
async fn main()