android 休眠任务不执行_Rust语言:Tokio调度器,异步任务是怎样调度执行的

本文介绍了Tokio,Rust异步编程的重要库,包括其基本调度器的工作原理,如任务的轻量级线程模型、任务队列管理和休眠策略。此外,还探讨了Threaded Runtime的任务窃取模式,以提高处理效率。Tokio的持续优化和未来的竞争格局也进行了展望。
摘要由CSDN通过智能技术生成

异步编程是现代互联网编程的趋势,例如Js的promise设计,Java的netty框架,Golang的协程,Php的Swoole扩展。所以,Rust在异步编程领域必然会加大深耕力度,相关的三方开源异步库也会越来越多,其中Tokio是比较成熟的一个异步框架。

55cd85206545a130177df7926fbedb5b.png

什么是Tokio

Tokio是Rust异步编程使用最多的半官方开源库,涵盖了fs文件IO、net网络IO以及time定时器等异步编程必备的实现方案,几乎90%以上的三方库采用Tokio作为底层的异步框架。

为了更容易理解Tokio,我们先从Tokio的执行调度器的源码来看看它的异步任务是怎么调度的。

Basic调度器

Basic Scheduler是Tokio默认的任务调度器,使用单线程-多任务的设计结构,每个任务的执行采用的是轻量化的线程模型。

轻量化的线程模型,又称协程,将任务的上下文切换由内核态改变为用户态,对于线程本身来说,所有的任务都在当前线程执行,只不过遇到IO操作会让出自己,把线程的运行所有权交给队列中的下一个任务,并将自己转移到队列的末尾等待下一次轮询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值