当前位置: 首页 > news >正文

来宾北京网站建设电商平台链接怎么弄

来宾北京网站建设,电商平台链接怎么弄,总工会网站建设方案,网页版微信app关于tokio的select宏,有不少的用途。包括超时和竞态选择等。 关于select宏需要关注,相关的异步条件,会同时执行,只是当有一个最早完成时,会执行“抛弃”和“对应”策略。 说明:对本文以下素材的来源表示感…

关于tokio的select宏,有不少的用途。包括超时和竞态选择等。

关于select宏需要关注,相关的异步条件,会同时执行,只是当有一个最早完成时,会执行“抛弃”和“对应”策略。

说明:对本文以下素材的来源表示感谢!

 https://zhuanlan.zhihu.com/p/14498925766

select宏分支匹配的定义:

<pattern> = <async expression> => <handler>

pattern当有返回值且需要处理,往往用val、Some(val)待形式表示,如果没有返回值或返回值不需处理,往往用”_“来表示。
而async expression部分,就是我们所指的condition_action部分。而handler部分就是分支对应的”后续任务“部分。

一、toml

[dependencies]
tokio = { version = "1.42.0",  features = ["full"] }

二、main.rs

说明:
condition_action为异步"条件任务";在后面的是“后续任务”。是否执行”后续任务“的前提是,哪个条件任务是最早完成。但这个选择是通过异步同时执行所有的”条件任务“PK出来的。

举个例子,可能更清楚:

比如学校某班级有3位同学,测试其运动水平高低,并决定水平最高的人可以参加学校运动会比赛(篮球或足球比赛,这个举例不一定合理)。假设设定测试条件任务是跑10000米(即condition_action),那么,我们可以让3位同学同时跑,首先冲过终点的人,马上去参加比赛(“后续任务”)。

当3位同学中,只要有人首先冲过终点(condition_action结束),就让他去代表参加比赛(执行后续任务,篮球或足球由其决定)。很显然,其它的人就不用跑了,可以停下来了,即被"抛弃"了,更不需要去参赛。

use tokio::time;async fn conditon_action(s: String) -> String{println!("\t 执行条件任务 {} 开始.", s);time::sleep(time::Duration::from_secs(1)).await;println!("\t 执行条件任务 {} 结束! 后续执行 => {},其它任务不执行!", s,s);s
}#[tokio::main]
async fn main() {for i in 0..3 {println!("Round {}:", i);time::sleep(time::Duration::from_secs(2)).await;// 注意:(1) select!会同时执行_A和_B两个任务;// (2)但是只会选择_A与_B中最先完成的任务对应的任务来执行后续的任务;// (3)同时,_A与_B中没有被执行完的部分,后续不执行。具体表现在condition_action函中有“开始”没有“结束”.tokio::select! {val = conditon_action(i.to_string()+"_A") => {println!("\t 执行后续任务{} 开始.", val);time::sleep(time::Duration::from_secs(2)).await;println!("\t 执行后续任务{} 结束.", val);},val = conditon_action(i.to_string()+"_B") => {println!("\t 执行后续任务{} 开始.", val);time::sleep(time::Duration::from_secs(2)).await;println!("\t 执行后续任务{} 结束.", val);}}}
}

输出:

Round 0:执行条件任务 0_B 开始.执行条件任务 0_A 开始.执行条件任务 0_A 结束! 后续执行 => 0_A,其它任务不执行!执行后续任务0_A 开始.执行后续任务0_A 结束.
Round 1:执行条件任务 1_B 开始.执行条件任务 1_A 开始.执行条件任务 1_B 结束! 后续执行 => 1_B,其它任务不执行!执行后续任务1_B 开始.执行后续任务1_B 结束.
Round 2:执行条件任务 2_A 开始.执行条件任务 2_B 开始.执行条件任务 2_A 结束! 后续执行 => 2_A,其它任务不执行!执行后续任务2_A 开始.执行后续任务2_A 结束.

解读:
对于round0:
1、A和B条件任务均执行,但B任务提前完成,此时A任务未完成部分"抛弃"
2、执行后续B任务
对于round1:
1、A和B条件任务均执行,但A任务提前完成,此时B任务未完成部分"抛弃"
2、执行后续A任务.
对于round2:
1、A和B条件任务均执行,但A任务提前完成,此时B任务未完成部分"抛弃"
2、执行后续A任务.

从上面可以清晰看到,tokio的select!中“抛弃”和“后续执行”策略。

http://www.dt0577.cn/news/34909.html

相关文章:

  • 石家庄java开发做网站推广普通话手抄报一等奖
  • 数据分析网站开发发布任务注册app推广的平台
  • cm域名做网站关键词优化排名的步骤
  • 东莞做企业宣传网站如何创建网站平台
  • 一条专访是哪个网站做的网页制作素材模板
  • 成都建设银行网站深圳关键词首页排名
  • 手机凡客网seo优化教程下载
  • 织梦后台怎么做网站地图seo范畴
  • 小程序开发平台哪家的好一些seo排名工具提升流量
  • 网络广告推广是怎么做的整站优化seo平台
  • 贵阳网站建设在线短视频营销的特点
  • 齐大胜请于果做网站是第几集技术培训班
  • 宜州网站建设服务百度seo怎么提高排名
  • 做网站 的主要收获专业代写软文
  • 已有的网站如何做排名优化查询网站备案信息
  • 广州做网站优化公司报价推广互联网推广
  • 做外贸上什么网站网络营销的渠道
  • 有哪些网站是免费学做网页的公司网站设计哪家好
  • 同一个wifi下_我如何用手机访问我用我电脑做服务器的网站上海网站搜索排名优化哪家好
  • 网站建设意义模板运营是做什么的
  • 顶级ppt欣赏杭州网站优化公司
  • 建筑工程招投标文军seo
  • 建站公司 网站营销策略ppt
  • 网站开发需要哪些知识推广信息发布平台
  • 男女做那个是的视频网站网络推广免费平台
  • 北京网站建设公司空间续费北京刷关键词优化排名
  • 买过域名之前就可以做网站了吗?网络推广员的日常工作
  • 如何查网站处罚过世界杯最新排名
  • 黄永玉的艺术人生潍坊seo计费
  • 工业和信息化部党组书记百度seo排名工具