微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rust Tokio Scheduler工作窃取与全局队列

如何解决Rust Tokio Scheduler工作窃取与全局队列

在rust tokio中,当处理器完成运行队列中的所有任务时,他们是先查看全局队列中的更多任务还是首先尝试从同级处理器中窃取工作?

解决方法

鉴于这是没有记载的,除非您能收到指定此行为的问题或PR,否则我认为它是未指定的,并且不是图书馆保证的一部分。我强烈建议依赖当前的行为。

话虽这么说,“使用代码卢克”仅几步之遥:主运行循环将为Context::run。当本地队列为空时,它将调用Core::steal_work,它首先开始从同级中窃取工作,然后又退回到全局队列。

请注意,尽管essay introducing the work-stealing schedulers指出,调度程序会在正常操作期间偶尔尝试从全局队列中弹出任务。

在从本地队列执行约60个任务之后,处理器将尝试从全局弹出。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。