use std::{sync::mpsc, thread, time::Duration};
fn spawn_function() {
for i in 0..5 {
println!("spawned thread print {}", i);
thread::sleep(Duration::from_millis(1));
}
}
#[tokio::main]
async fn main() {
thread::spawn(spawn_function);
thread::spawn(|| {
for i in 0..5 {
println!("spawned thread printa {}", i);
thread::sleep(Duration::from_millis(1));
}
});
let (tx, rx) = mpsc::channel();
thread::spawn(move || {
let val = String::from("hi............");
tx.send(val).unwrap();
});
let received = rx.recv().unwrap();
println!("Got: {}", received);
let s = "hello";
let handle = thread::spawn(move || {
println!("{}", s);
});
handle.join().unwrap();
thread::sleep(Duration::from_secs(1));
/*************************************************************************/
async fn async_task() -> u32 {
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
return 999;
}
// 异步任务执行函数
async fn execute_async_task() {
// 调用异步任务,并等待其完成
let result = async_task().await;
// 输出结果
println!("Async task result: {}", result);
}
execute_async_task().await;
println!("Async task completed!");
async fn hello() -> String {
"Hello, world!".to_string()
}
async fn print_hello() {
let result = hello().await;
println!("{}", result);
}
print_hello().await;
thread::sleep(Duration::from_secs(2));
}
tokio = { version = "1.0.0", features = ["full"] }