首页 > 其他分享 >[记]tokio学习

[记]tokio学习

时间:2024-06-13 10:56:45浏览次数:21  
标签:--- tokio 学习 call async Async id

use std::thread;
use std::time;
use tokio::time::{sleep,Duration};
fn blocking_call() -> String{
    for idx in 0..5{
        thread::sleep(time::Duration::from_secs(1));
        println!("---{}",idx);
    }
    
    "Finally done".to_string()
}

async fn async_call(id: i32){
    sleep(Duration::from_secs(1)).await;
    println!("Async id:{}",id);
}

#[tokio::main]
async fn main() {
    let blocking_call_handle = tokio::task::spawn_blocking(blocking_call);
    let mut async_handles = Vec::new();
    for id in 0..10{
        async_handles.push(tokio::spawn(async_call(id)));
    }

    for handle in async_handles{
        handle.await.unwrap();
    }
    println!("Hello, world!");
    let result = blocking_call_handle.await.unwrap();
    println!("Blocking result:{}",result);
}

---0
Async id:2
Async id:7
Async id:6
Async id:0
Async id:3
Async id:9
Async id:4
Async id:5
Async id:8
Async id:1
Hello, world!
---1
---2
---3
---4
Blocking result:Finally done

标签:---,tokio,学习,call,async,Async,id
From: https://www.cnblogs.com/hardfood/p/18245421

相关文章

  • 通过元学习优化增益模型的性能:基础到高级应用总结
    在当今数据驱动的决策过程中,因果推断和增益模型扮演了至关重要的角色。因果推断帮助我们理解不同变量间的因果关系,而增益模型则专注于评估干预措施对个体的影响,从而优化策略和行动。然而,要提高这些模型的精确度和适应性,引入元学习器成为了一个创新的解决方案。元学习器通过将估计......
  • 谈一点学习心得----驴拉磨式的学习
    在学习一些坚深的、很难理解的数学或物理课程时,我想我们应该具有驴拉磨式的学习方式,并且是那种蒙住双眼式的驴拉磨学习方式。本质地讲,那些很难理解的学问其实就是在开创一种新的思想(思考方式),用这种新的思想来描述超越我们直观认识的世界。正因为如此,如果我们仍然想通过我们已有......
  • 机器学习python实践——关于ward聚类分层算法的一些个人心得
    最近在利用python跟着参考书进行机器学习相关实践,相关案例用到了ward算法,但是我理论部分用的是周志华老师的《西瓜书》,书上没有写关于ward的相关介绍,所以自己网上查了一堆资料,都很难说清楚ward算法,幸好最后在何晓群老师的《多元统计分析》这本书找到了比较清晰的说法,所以总结出......
  • Springboot计算机毕业设计英语学习课程微信小程序【附源码】开题+论文+mysql+程序+部
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着移动互联网的迅猛发展,微信已成为人们生活中不可或缺的一部分。微信小程序作为微信生态系统的重要组成部分,以其便捷性、即用即走的特点,受到了广大......
  • Springboot计算机毕业设计英语学习小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在全球化的大背景下,英语作为国际通用语言,其重要性不言而喻。然而,传统的英语学习方式往往受到时间、地点和资源的限制,使得学习者难以获得高效、便捷的......
  • GD32学习中遇到 warning: #188-D: enumerated type mixed with another type 强迫症尽
    项目场景:今天往GD32的系统板里加入六个按键,在DEMO程序的基础上要做一些修改。在对时钟使能的时候,习惯的用STM32的方法。加|线隔开两个GPIO口,结果报出warning:#188-D:enumeratedtypemixedwithanothertype的警告。强迫症尽量不要有警告……rcu_periph_clock_enable(RC......
  • Web大前端全栈架构学习之路
    Web大前端是一个非常庞大的知识体系结构,需要学习和掌握的知识非常多,技术更新的速度也非常快,一直想把我们整个大前端的知识技能做一个系统的学习总结,及时的查缺补漏以及学习新的技能。大厂一线全栈开发12年,从小白到全栈架构,如何系统的学习Web大前端全栈架构,从今天开始持续更......
  • Java学习 - MySQL数据增删更清操作 实例
    INSERTINTO-插入语法1-【常用;支持多行;可用于子查询】INSERTINTO表名(字段列表)VALUES(字段值列表),(字段值列表),(字段值列表),(字段值列表);注意如果想设置空值,可以用NULL表示字段列表和字段值列表必须一一对应字段列表的顺序可以和表定义顺序不同可以省略......
  • Java学习 - MySQL数据库常用命令 实例
    进入MySQL命令行>>mysql-u用户名-p>>输入密码查看MySQL的版本--方法1:通过命令行>>mysql--version>>mysql-V--方法2:通过MySql内置函数>>SELECTVERSION();查看所有的数据库SHOWDATABASES;打开指定的数据库USEtables;查看当前数据库所有的表......
  • Java学习 - MySQL数据库导入和查询方式 实例
    目录练习用数据库导入基础查询条件查询排序查练习用数据库导入下载相关资源中的myemployess.sql执行sql脚本sourcemyemployees.sql;基础查询SELECT子句SELECT查询字段FROM表名;--查询字段包括:表的字段,常量值,表达式,函数--查询的结果是一个虚拟的表查......