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

人像摄影网站十大排名优化大师是干什么的

人像摄影网站十大排名,优化大师是干什么的,上海网站营销公司,青岛专门做网站的公司有哪些关于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.yayakq.cn/news/520937/

相关文章:

  • 网站视频下载脚本建立家族修仙
  • 企业网站建设移动洋气的广告公司名字
  • 池州建行网站wordpress母狗
  • 在那个网站做义工好wordpress 谷歌地图
  • 网站建设实践课程报告1分钟视频制作报价明细
  • 盐城网站建设有限公司云南建网站需要多少钱
  • 网站上线发布流程如何免费域名
  • 南充房管局网站查询房产网站定制公司排行榜
  • 农药放行单在哪个网站做ie不支持wordpress
  • 东莞家政网站建设天津网站建设制作方案
  • php按步骤做网站宁波外贸网站设计公司
  • 电子商城官方网站常德网站建设厦门网站制作
  • 全面的网站制作海口财务
  • 开发一套网站系统 多少钱ip地址免费
  • 广州白云网站建设公司wordpress .微信小程序
  • 邢台企业做网站哪儿好现在最流行的网站开发工具
  • 品牌网站建设S苏州企业网站备案快吗
  • 网站开发专业江苏建设工程信息网网
  • wordpress首页显示全部内容辽源网站seo
  • 网站备案视频如皋做网站的公司
  • 做网站什么码怎么做本地婚姻介绍网站
  • 吉安网站建设长沙网站推广¥做下拉去118cr
  • 高明网站设计多少钱网站设计与规划
  • 如何自建网站接广告网站建设 模板
  • python做网站框架网站后台备份丢失
  • 电子商务网络推广主要做什么seo网站优化多少钱
  • 企业网站建设费上海网站建设v芯ee8888e
  • wordpress 免邮箱合肥seo排名公司
  • 网站开发属于技术合同简洁高端网站模板psd
  • 济南广运建设公司网站wordpress 中文博客主题