Executor

不过到目前为止,我们求值Future还是只有block_on函数,只能在单个线程上搞并发(通过join这些组合子),虽然在不少平台上这已经足够了(比如wasm目前多线程还没搞好,只有单线程),但在很多平台上却无法利用多线程的优势。

于是我们希望可以实现一个朴素的策略,利用多线程来poll Future:

  1. Future丢到队列里,
  2. 线程池里的空闲的线程则在队列中取Future轮询一次,然后晾一边,
  3. 等待Future的waker被调用,丢到队列里。

(图懒得画,大家自己脑补)