Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 707 Bytes

future-poll-perf.md

File metadata and controls

9 lines (5 loc) · 707 Bytes

Rust 的 Future 是基于轮询的,这种方式不会有性能问题吗?

Future 的轮询是带通知机制的轮询,与传统意义上的轮询不完全一样。

执行器调用 Futurepoll 方法时会传入一个 Waker,而 Future 可以将这个 Waker 保存起来,当自己的状态有所变化时,通过其通知执行器可以再次对自己进行轮询。通过这个机制,执行器可以避免反复轮询一个未准备好的 Future,避免了传统轮询带来的性能问题。